• Link zu Xing
  • Link zu LinkedIn
  • Link zu X
  • Link zu Rss dieser Seite
  • Link zu GitHub
  • Newsletter
  • Kontaktieren Sie mich
Frank W. Rahn
  • Meine BlogbeiträgeZeigt meinen Blog an
  • RessourcenZeigt Ihnen eine Auswahl von Ressourcen
    • Franks aktueller IT-Werkzeugkasten
      • Diese Werkzeuge setze ich zur Zeit ein
    • Meine Präsentationen
      • Zeigt Ihnen meine Präsentationen
    • Weblinks
      • Meine Linksammlung
    • Buchtipps
      • Eine Liste von mir empfohlener Literatur
    • XML-Namespace
      • Zeigt meinem XML-Namespace
  • Franks aktueller IT-WerkzeugkastenDiese Werkzeuge setze ich zur Zeit ein
  • Meine PräsentationenZeigt Ihnen meine Präsentationen
  • WeblinksMeine Linksammlung
  • BuchtippsEine Liste von mir empfohlener Literatur
  • XML-NamespaceZeigt meinem XML-Namespace
  • Über mich …Die persönlichen Informationen über den Softwarearchitekt Frank Rahn
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
Artikel, Beispiele und Vorträge

Stored Procedure mit User-defined Types unter Oracle

Die Stored Procedure "searchPersons" mit User-defined Types (UDT)

Zuletzt geändert oder ergänzt am 21.06.2026!

In diesem Beitrag möchte ich zeigen, wie eine Stored Procedure mit User-defined Types (UDT) in einer Oracle Database programmiert wird. Im übergeordneten Beitrag Spring und Stored Procedure mit User-defined Types wird das Aufrufen dieser Stored Procedure aus Java heraus gezeigt. Im Beitrag Stored Procedure mit User-defined Types unter PostgreSQL wird dieses Beispiel anhand einer PostgreSQL Datenbank beschrieben.

Inhaltsverzeichnis [anzeigen]

  • Die Installation des Oracle Datenbankservers
  • Das Erzeugung einer Stored Function per Konsolenanwendung
  • Die Erzeugung der Stored Procedure mit User-defined Types

Dieser Beitrag beschreibt …

  • das Installieren bzw. Einrichten eines Oracle Database Servers in einer Oracle VM VirtualBox
  • das Erzeugen einer Stored Procedure mit User-defined Types (UDT)

Die Installation des Oracle Datenbankservers

Hier greife ich auf einen vorinstallierten und konfigurierten Datenbankserver in einer VirtualBox zurück. Dazu muss zunächst die Oracle VM VirtualBox unter dem Betriebssystem Ubuntu installiert werden.

$ sudo apt-get install virtualbox-4.2
...

Auf der Seite Pre-Built Developer VM kann unter dem Namen Database App Development VM eine vorgefertigte virtuelle Maschine (VM, ca. 4 GByte) mit folgenden Bestandteilen heruntergeladen werden.

  • Oracle Linux 5
  • Oracle Database 11g Release 2 Enterprise Edition
  • Oracle SQL Developer
  • Oracle SQL Developer Data Modeler
  • Oracle Application Express
  • Oracle JDeveloper
  • Oracle XML DB
  • Oracle TimesTen In-Memory Database Cache
  • Hands-On-Labs

Achtung

Bitte beachten Sie die Hinweise zur Nutzung von Oracle.

Nach dem Download kann eine virtuelle Maschine aus der Datei Oracle_Developer_Day.ova importiert werden.

$ VBoxManager import Oracle_Developer_Day.ova 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
 ...
Successfully imported the appliance.
$

Nach dem Import der virtuellen Maschine kann diese aufgelistet und der konkrete Name ermittelt werden.

$ VBoxManage list vms
"Kubuntu 12.10 amd64" {eb62ac51-9223-4152-a72d-13a01245e733}
"Oracle Developer Days" {8016926a-7770-4c87-845a-a414280bc331}
$

Es müssen noch notwendige Anpassungen am Netzwerk-Adapter (hier mit der Nummer 1) der virtuelle Maschine vorgenommen werden.

  • In der Zeile 8 wird der Typ des Netzwerk-Adapters auf NAT umgestellt. Damit stellt die VirtualBox dem Gastsystem (Oracle Datenbank) einen NAT-Router inklusive DHCP-Server zu Verfügung. Dadurch erscheint das Gastsystem nicht im physischen Netzwerk des Hostsystems (mein Rechner). Die Verbindungen vom Gastsystem werden über die Netzwerkverbindung des Hostsystems transportiert. Ein direkter Verbindungsaufbau zum Gastsystem ist nur durch eine Port-Weiterleitung möglich.
  • In der Zeile 9 wird eine Port-Weiterleitung vom Gastsystem (Port 1521) auf das Hostsystem (Port 1521) für die Datenbank (Listener) vorgenommen.
  • In der Zeile 10 wird eine Port-Weiterleitung vom Gastsystem (Port 22) auf das Hostsystem (Port 2222) für SSH vorgenommen.
$ VBoxManage modifyvm "Oracle Developer Days" --nic1 nat
$ VBoxManage modifyvm "Oracle Developer Days" --natpf1 "ORACLE,tcp,,1521,,1521"
$ VBoxManage modifyvm "Oracle Developer Days" --natpf1 "SSH,tcp,,2222,,22"
$

Die virtuelle Maschine mit dem Namen Oracle Developer Days kann mit folgenden Parametern gestartet werden.

$ VBoxManage startvm "Oracle Developer Days"
Waiting for VM "Oracle Developer Days" to power on...
VM "Oracle Developer Days" has been successfully started.
$

In der Oberfläche des Oracle Linux kann man sich mit dem Benutzer oracle und dem Passwort oracle anmelden.

Eine Anmeldung am Gastsystem per ssh kann wie folgt durchgeführt werden.

$ ssh -p 2222 oracle@localhost
oracle@localhost password: 
Last login: ...
...
[oracle@localhost ~]$

Die Konsole kann durch den Befehl exit verlassen werden.

In dieser Version der Oracle Datenbank wird bei Benutzername und Passwort zwischen Groß- und Kleinschreibung unterschieden. Da einige Treiber bzw. Frameworks damit noch Probleme haben, schalten wir, für dieses Beispiel, dieses Feature wieder ab.

Zunächst wird die Konsolenanwendung SQL*Plus mit SYSDBA Recht gestartet.

[oracle@localhost ~]$ sqlplus hr/oracle as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on ...

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

Das Ausschalten der Beachtung von Groß- und Kleinschreibung bei der Authentifizierung.

SQL> SHOW PARAMETER sec_case_sensitive_logon

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon             boolean     TRUE
SQL> ALTER SYSTEM SET sec_case_sensitive_logon=FALSE;

System altered.

SQL>

Das Erzeugung einer Stored Function per Konsolenanwendung

Als erstes wird über die Konsolenanwendung SQL*Plus eine Funktion erzeugt. Dazu auf den Gastrechner anmelden (Beschreibung siehe hier).

[oracle@localhost ~]$ sqlplus hr/oracle

SQL*Plus: Release 11.2.0.2.0 Production on ...

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

Die Eingabe des SQL Befehls zur Erzeugung der Funktion fn_info().

SQL> CREATE OR REPLACE FUNCTION fn_info RETURN VARCHAR2 IS
  2  BEGIN
  3  RETURN 'Eine einfache Funktion';
  4  END fn_info;
  5  /

Function created.

SQL>

Mit dem folgenden SQL Befehl wird die gerade erzeugte Funktion getestet.

SQL> SELECT fn_info() FROM dual;

FN_INFO()
--------------------------------------------------------------------------------
Eine einfache Funktion

SQL>

Die Anzeigen der erzeugten Funktion.

SQL> DESC user_plsql_object_settings
 Name                                       Null?       Type
 -----------------------------------------  --------    ----------------------------
 NAME                                       NOT NULL    VARCHAR2(30)
 TYPE                                                   VARCHAR2(12)
 PLSQL_OPTIMIZE_LEVEL                                   NUMBER
 PLSQL_CODE_TYPE                                        VARCHAR2(4000)
 PLSQL_DEBUG                                            VARCHAR2(4000)
 PLSQL_WARNINGS                                         VARCHAR2(4000)
 NLS_LENGTH_SEMANTICS                                   VARCHAR2(4000)
 PLSQL_CCFLAGS                                          VARCHAR2(4000)
 PLSCOPE_SETTINGS                                       VARCHAR2(4000)

SQL> SELECT name, type FROM user_plsql_object_settings;

NAME                            TYPE
------------------------------  ------------
ADD_JOB_HISTORY                 PROCEDURE
FN_INFO                         FUNCTION
GETRESULTSET                    FUNCTION
SECURE_DML                      PROCEDURE
SECURE_EMPLOYEES                TRIGGER
TYPES                           PACKAGE
UPDATE_JOB_HISTORY              TRIGGER

7 rows selected.

SQL>

Die Erzeugung der Stored Procedure mit User-defined Types

Mit dem folgendem Skript wird die Stored Procedure und die User-defined Types angelegt.

Zunächst wird im Skript der Server Output angeschaltet und in der letzten Zeile das Programm wieder abgeschaltet.

SET SERVEROUTPUT ON
QUIT

In den folgenden Zeilen werden die benutzerdefineirten Typen des aktuellen Benutzers und einer Person angelegt bzw. überschrieben.

CREATE OR REPLACE TYPE s_User AS OBJECT ( -- Der aktuelle Benutzer
    id  CHAR(10),
    name    VARCHAR(30),
    dept    VARCHAR(254)
);
/

CREATE OR REPLACE TYPE s_Person AS OBJECT ( -- Eine Person
    id      NUMBER(19),
    name        VARCHAR(30),
    salary      DECIMAL,
    dateOfBirth DATE
);
/

Für die Person muss noch eine Liste definiert werden.

CREATE OR REPLACE TYPE a_Person AS TABLE OF s_Person; -- Collection der Person
/

In folgenden Zeilen wird die eigentliche Stored Procedure erzeugt.

  • In den Zeilen 22 bis 23 sind die Eingabeparameter der Prozedur definiert.
  • In der Zeile 24 ist der Rückgabeparameter als ein Liste von Personen definiert.
  • In den Zeilen 26 bis 28 sind die Variabeln dieser Prozedur definiert.
  • In der Zeile 28 wird das Geburtsdatum mit dem aktuellen Datum vorbelegt.
  • In der Zeile 30 wird eine Meldung auf die Kommandozeile geschrieben.
  • In der Zeile 32 wird die Liste für die Personen angelegt.
  • In der Zeile 36 wird eine neue Person angelegt.
  • In der Zeile 39 wird die konstant Kreiszahl Pi (π) verwendet, um ein Gehalt auszurechnen. Da Oracle die Kreiszahl nicht als Konstante kennt, wird die Funktion cos-1(-1) verwendet, um die Kreiszahl zu berechnen.
  • In der Zeile 42 wird die Liste der Personen um ein Nullelement erweitert.
  • In der Zeile 43 wird der letzte Platz in der Liste der Personen mit der erzeugte Person gefüllt.
CREATE OR REPLACE PROCEDURE searchPersons( -- Suche Personen
    p_num       IN  INTEGER,
    p_user      IN  s_User,
    p_persons   OUT a_Person
) IS
    i       INTEGER;
    p       s_Person;
    dateOfBirth DATE := CURRENT_DATE;
BEGIN -- Ausführungsteil
    DBMS_OUTPUT.PUT_LINE('Die Stored Procedure searchPersons wurde aufgerufen. User=' || p_user.id);

    p_persons := a_Person();

    FOR i IN 1..p_num
    LOOP -- Fake der Suche
        p := s_Person(
            i,                      -- id
            p_user.name,            -- name
            ACOS(-1.0) * i * 100.0, -- Salary
            dateOfBirth             -- dateOfBrith
        );
        p_persons.extend();
        p_persons(p_persons.LAST) := p;
    END LOOP;
END searchPersons;
/

Bevor die SQL-Skripte ausgeführt werden können, müssen die SQL-Dateien per scp aus dem Verzeichnis src/sql/oracle auf den Oracle Server hochgeladen werden.

$ scp -P 2222 *.sql oracle@localhost:~
oracle@localhost password: 
init.sql                                                       100%  985     1.0KB/s   00:00
test.sql                                                       100%  571     0.6KB/s   00:00
$

In der Grundkonfiguration des Oracle Servers wird folgende Meldung erscheinen und die Dateien werden nicht hochgeladen.

$ scp -P 2222 *.sql oracle@localhost:~
oracle@localhost password: 
All passwords are oracle or noted if otherwise.
$

Dieses Problem liegt in den Skripten ~/.bashrc und ~/.bash_profile auf dem Oracle Server. Diese Skripte werden bei einer Anmeldung des Benutzers ausgeführt und produzieren Ausgaben. Leider kann scp mit den Ausgaben aus den Startskripten nicht umgehen und überträgt die Dateien nicht.

Es müssen folgenden Zeilen, die die Ausgaben produzieren, auskommentiert werden.

#cat ~/Desktop/README.txt

#/sbin/ifconfig | grep "inet addr"
#echo IP Address is:
#/sbin/ifconfig | grep "inet addr"

Nach der Durchführung dieser Änderungen, kann das Skriptes mit dem Kommando sqlplus ausgeführt werden.

Das Kommando liefert folgende Konsolenausgaben.

[oracle@localhost ~]$ sqlplus hr/oracle @init.sql

SQL*Plus: Release 11.2.0.2.0 Production on Mon Apr 1 07:33:40 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


Type created.


Type created.


Type created.


Procedure created.

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@localhost ~]$

Das folgende Skript dient der Überprüfung der angelegten Prozedur.

  • In den Zeilen 3 bis 15 wird eine Funktion definiert, die ein Benutzer erzeugt.
  • In den Zeilen 18 bis 32 wird ein Block definiert, der es ermöglicht die Prozedur aufzurufen.
SET SERVEROUTPUT ON

CREATE OR REPLACE FUNCTION get_user
    RETURN s_User
IS
    u   s_User;
BEGIN
    u := s_User(
        4711,
        'Frank Rahn',
        'Entwicklung'
    );

    RETURN u;
END get_user;
/

DECLARE
    a   a_Person;
    i   INTEGER;
BEGIN
    searchPersons(5, get_user(), a);

    FOR i IN a.FIRST..a.LAST
    LOOP
        DBMS_OUTPUT.PUT_LINE('Person ' || i);
        DBMS_OUTPUT.PUT_LINE('id=' || a(i).id);
        DBMS_OUTPUT.PUT_LINE('name=' || a(i).name);
        DBMS_OUTPUT.PUT_LINE('salary=' || a(i).salary);
        DBMS_OUTPUT.PUT_LINE('dateOfBirth=' || a(i).dateOfBirth);
    END LOOP;
END;
/

DROP FUNCTION get_user;

QUIT

Die Konsolenausgabe dieses Skripts zeigt, dass die Stored Procedure aufgerufen wurde.

[oracle@localhost ~]$ sqlplus hr/oracle @test.sql

SQL*Plus: Release 11.2.0.2.0 Production on Mon Apr 1 07:44:02 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


Function created.

Die Stored Procedure searchPersons wurde aufgerufen. User=4711
Person 1
id=1
name=Frank Rahn
salary=314
dateOfBirth=01-APR-13
Person 2
id=2
name=Frank Rahn
salary=628
dateOfBirth=01-APR-13
Person 3
id=3
name=Frank Rahn
salary=942
dateOfBirth=01-APR-13
Person 4
id=4
name=Frank Rahn
salary=1257
dateOfBirth=01-APR-13
Person 5
id=5
name=Frank Rahn
salary=1571
dateOfBirth=01-APR-13

PL/SQL procedure successfully completed.


Function dropped.

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@localhost ~]$
  • Über
  • Letzte Artikel
Frank Rahn
Frank Rahn
Frank Rahn ist Softwarearchitekt. Er unterstützt bei der Konzeption von Softwarearchitekturen mit Java-Technologie. Folge Sie ihm auf Facebook oder Twitter.

Benötigen Sie Unterstützung? Kontaktieren Sie ihn.

Hat Ihnen dieser Beitrag gefallen? Wir würden uns über Ihren Kommentar freuen! Bitte verwenden Sie Ihren bürgerlichen Namen.
Frank Rahn
Letzte Artikel von Frank Rahn (Alle anzeigen)
  • Wer ist der optimale Java Bean Mapper? - Freitag, 22. September 2023
  • Spring Boot Webanwendung: Die ersten Schritte (Tutorial) - Montag, 28. März 2016
  • Mainframe-Zugriff via Java - Sonntag, 04. Mai 2014
0 Kommentare/von Frank Rahn
Schlagworte: Linux, PaaS, Shell, SQL, User-defined Type
Eintrag teilen
  • Teilen auf X
  • Teilen auf WhatsApp
  • Teilen auf LinkedIn
  • Per E-Mail teilen
  • Teilen auf Xing
https://www.frank-rahn.de/wp-content/uploads/Stored-Procedure-mit-User-defined-Types.png 624 1184 Frank Rahn /wp-content/uploads/logo.png Frank Rahn2013-01-06 20:14:452026-06-21 17:49:26Stored Procedure mit User-defined Types unter Oracle
Das könnte Dich auch interessieren
Eine Festplatte Einige Tipps mit defekten Festplatten oder Partitionen
Debian Paketsystem APT (Advanced Packaging Tool)
Bild von den laufenden Prozesse unter Linux Finden eines versteckten Prozesses unter Linux
Bild von Linux Dateimanager Nautilus Dateioperationen: umbenennen, kopieren, suchen, …
Die Stored Procedure "searchPersons" mit User-defined Types (UDT) Spring und Stored Procedure mit User-defined Types (Tutorial)
Bild einer Sicherungen von MySQL Datenbanken Sicherungen von MySQL Datenbanken
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Ihre E-Mail-Adresse wird nicht veröffentlicht. Ihr Kommentar wird verschlüsselt an meinen Server gesendet. Erforderliche Felder sind mit * markiert.

Weitere Informationen und Widerrufshinweise finden Sie in meiner Datenschutzerklärung.

Wollen Sie kein neuen Beiträge mehr verpassen?
Dann abonnieren Sie bitte meinen Newsletter.
Meinen Newsletter abonnieren

Themen

  • Wer ist der optimale Java Bean Mapper?
  • Einführung in das Spring Framework, Boot, Batch, Data, REST, Security, Web, …
  • Franks aktueller IT-Werkzeugkasten
  • Git, GitHub, EGit, …

Navigation

  • Buchtipps
  • Newsletter
  • Weblinks
Search Search

Werbung

  • JProfiler
Beliebt
  • Das Klassendiagramm für den Java Bean Mapper Test am Beispiel "ByHand"
    Wer ist der optimale Java Bean Mapper?Freitag, 22. September 2023 - 20:59 Uhr
  • Das offizielle Logo von EGit
    GitHub mit Eclipse (EGit)Freitag, 26. Oktober 2012 - 16:15 Uhr
  • Grobe Übersicht üder den Spring Framework Container
    Einführung in das Spring FrameworkSonntag, 01. Mai 2011 - 18:30 Uhr
  • Die Stored Procedure "searchPersons" mit User-defined Types (UDT)
    Spring und Stored Procedure mit User-defined Types (Tut...Freitag, 26. Oktober 2012 - 21:45 Uhr
  • Spring Boot Webanwendung
    Spring Boot Webanwendung: Die ersten Schritte (Tutorial...Montag, 28. März 2016 - 16:29 Uhr
Schlagworte
Annotations AOP Architektur Autorisierung Cookies CRUD DAO DI Git HTML HTTP IoC Java Java EE Java SE JPA JSR Linux MVC Open Source Software PDF POJO REST (RESTful) ROCA Self-contained Systems Serviceorientierte Shell Sicherheit (Security) SOAP Spring SQL SVN Test Toolchain URI URL URN User-defined Type Versionsverwaltung VPN Webservice WS-* WSDL XML XML-Schema

Blogarchiv

Links

Mastodon
Twitter
LinkedIn
Xing
GitHub

Lizenz

Creative Commons Lizenzvertrag Die Texte (nicht Bilder) von Frank Rahn stehen unter einer Creative Commons Namensnennung - Keine Bearbeitungen 4.0 Deutschland Lizenz.

Affiliate-Links

Die mit (*) gekennzeichnete Links sind sogenannte Affiliate-Links. Kommt über einen solchen Link ein Einkauf zustande, werde ich mit einer Provision beteiligt. Für Sie entstehen dabei keine Mehrkosten. Wo, wann und wie Sie ein Produkt kaufen, bleibt natürlich Ihnen überlassen.

Blogkategorien

Copyright © Frank W. Rahn
  • Impressum / HaftungsausschlussDie notwendigen gesetzlichen Angaben dieser Webseite von Frank Rahn
  • DatenschutzerklärungDie Datenschutzerklärung von Frank Rahn
  • NewsletterKeine neuen Beiträge mehr verpassen!
  • BildnachweisDer komplette Bildnachweis von Frank Rahn
Link to: Stored Procedure mit User-defined Types unter PostgreSQL Link to: Stored Procedure mit User-defined Types unter PostgreSQL Stored Procedure mit User-defined Types unter PostgreSQLDie Stored Procedure "searchPersons" mit User-defined Types (UDT) Link to: Mehrere PDF- oder PS-Dokumente zusammenfügen Link to: Mehrere PDF- oder PS-Dokumente zusammenfügen Mehrere PDF- oder PS-Dokumente zusammenfügenMehrere PDF- oder PS-Dokumente zusammenfügen
Nach oben scrollen Nach oben scrollen Nach oben scrollen

Wir setzen auf unserer Webseite verschiedene Arten von Cookies ein, die auf Ihrem Gerät gespeichert werden. Einige dieser Cookies sind für die einwandfreie Funktion der Webseite notwendig, während andere Cookies Ihnen ein besseres Besuchererlebnis bieten.

DatenschutzerklärungImpressumAlle Cookies akzeptierenKeine Cookies akzeptierenIndividuelle Cookie-Einstellungen vornehmen

Cookie- und Datenschutzeinstellungen



Wie wir Cookies verwenden

Wir setzen auf unserer Webseite verschiedene Arten von Cookies ein, die auf Ihrem Gerät gespeichert werden.

Einige dieser Cookies sind für die einwandfreie Funktion der Webseite notwendig, während andere Cookies Ihnen ein besseres Besuchererlebnis bieten.

Klicken Sie links auf die verschiedenen Reitern, um mehr zu erfahren. Sie können auch einige Cookie-Einstellungen individuell anpassen. Beachten Sie, dass das Blockieren einiger Cookies die einwandfreie Funktion unserer Webseite beeinträchtigt.

Technisch notwendige Cookies

Diese Cookies sind unbedingt erforderlich, denn sie ermöglichen grundlegende Funktionen und sind für die einwandfreie Funktion der Webseite erforderlich.

Sie können diese Cookies jederzeit blockieren oder löschen, indem Sie Ihre Browsereinstellungen ändern und die Blockierung aller Cookies auf dieser Webseite erzwingen. Leider werden Sie dann immer wieder gefragt, ob Sie Cookies akzeptieren oder ablehnen wollen, wenn Sie unsere Webseite erneut besuchen.

Wir setzen die Cookies aviaPrivacyEssentialCookiesEnabled, aviaPrivacyMustOptInSetting, aviaPrivacyRefuseCookiesHideBar und aviaCookieConsent ein, um Ihre individuellen Cookie-Einstellungen zu speichern. Diese Informationen geben wir an keinen Drittanbietern weiter.

Diese Cookies haben eine Laufzeit von einem Jahr, dann müssen Sie die Einstellungen wiederholen.

Die VG WORT setzt das Sitzungscookie srp zur Messung von Zugriffen auf Texten, um die Kopierwahrscheinlichkeit des Textes zu erfassen. Damit partizipieren ich an den Ausschüttungen der VG WORT, welche die gesetzliche Vergütung für die Nutzungen urheberrechtlich geschützter Werke gemäß § 53 UrhG sicherstellen. Das Cookie wird dazu verwendet, um den Nutzer zu identifizieren und ggf. Daten mehrerer Aufrufe von Texten miteinander verknüpfen zu können.

Nach Angaben der VG WORT stellt das eingesetzte Verfahren sicher, dass einzelne Nutzer oder ihr Leseverhalten nicht ermittelbar sind, wenn die Anzahl der Textaufrufe gezählt wird. Alle von der VG Wort erfassten Daten werden sofort sicher verschlüsselt. Der Einsatz des Zählpixels wurde durch das Bayerische Landesamt für Datenschutzaufsicht begutachtet und als datenschutzkonform bewertet.

Datenschutzerklärung der VG WORT

Marketing-Cookies

Die Marketing-Cookies werden von Drittanbietern oder Publishern, wie z. B. Google Analytics, verwendet, um personalisierte Werbung anzuzeigen. Sie tun dies, indem sie Besucher über Webseiten hinweg verfolgen (Tracking).

Wir setzen keine Marketing-Cookies ein.

Datenschutzbestimmungen

Sie können unsere Cookies und Datenschutzeinstellungen im Detail in unserer Datenschutzerklärung nachlesen.

Cookie-Einstellungen übernehmenKeine Cookies akzeptieren
Nachrichtenleiste öffnen Nachrichtenleiste öffnen Nachrichtenleiste öffnen