Join- und split-Funktionen mit SQL

Das PL/SQL-Benutzerhandbuch gibt an, dass man immer ein Package deklarieren muss, das einen REF CURSOR definiert. Die Datenbank legt dies allerdings bereits als SYS_REFCURSOR im Package STANDARD fest. Der PL/SQL-Code dürfte nicht schwer zu verstehen sein. Für den Ausgabestring und die Eingabespalte wurde eine Grenze von 32.767 Zeichen festgelegt.

Da alle Datentypen automatisch in Zeichenketten konvertiert werden können, kann man im Cursor jeden beliebigen Datentyp verwenden – solange es sich um nur eine Spalte handelt. Ein Beispiel:


Es gibt noch einen zusätzlichen Vorteil: Da der Cursor Teil des SQL-Ausdrucks ist, kann man die Abfrage innerhalb der join-Funktion leicht mit einer externen Abfrage verknüpfen. Hier eine Abfrage, die jede einzelne Tabelle ausgibt, sowie eine Liste der Spalten, die den Primärschlüssel bilden:


Die entsprechende Ausgabe ist in Tabelle A zu sehen.

Man kann diese „join“-Funktion auch zum Vergleichen zweier geordneter Datensätze verwenden. Die folgende Abfrage überprüft zum Beispiel, ob ein Index auf Basis eines Fremdschlüssels erstellt wurde (was ein Locking der Tabelle verhindert und Master-Detail-Abfragen unterstützt):


Diese Abfrage führt zwei Unterabfragen aus: Eine fragt die Fremdschlüssel ab, die andere Indices. Die Verknüpfung zwischen diesen beiden Abfragen besteht im Tabellennamen und in der Liste der zur Erstellung von Fremdschlüssel und Index verwendeten Spalten, die als geordnete Liste von Werten übernommen werden.

Themenseiten: Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Join- und split-Funktionen mit SQL

Kommentar hinzufügen

Schreibe einen Kommentar

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