PL / SQL SELECT INTO (Deutsch)
Zusammenfassung: In diesem Lernprogramm erfahren Sie, wie Sie PL / SQL verwenden SELECT INTO
zum Abrufen von Daten einer einzelnen Zeile aus einer Tabelle in Variablen.
PL / SQL SELECT INTO
-Anweisung ist der einfachste und schnellste Weg zum Abrufen einer einzelnen Zeile aus einer Tabelle in Variablen. Das Folgende veranschaulicht die Syntax der PL / SQL-Anweisung SELECT INTO
:
In dieser Syntax die Anzahl von Spalten in variable_list
müssen mit der Anzahl der Variablen (oder der Anzahl der Komponenten eines Datensatzes) in select_list
übereinstimmen. Darüber hinaus muss der entsprechende Datentyp kompatibel sein.
Neben der WHERE
-Klausel können Sie andere Klauseln in der SELECT
-Anweisung wie INNER JOIN
, GROUP BY
, HAVING
und UNION
.
Wenn die Anweisung SELECT
mehr als eine Zeile zurückgibt, löst Oracle die TOO_MANY_ROWS
Ausnahme. Wenn die Anweisung SELECT
keine Zeile zurückgibt, löst Oracle die Ausnahme NO_DATA_FOUND
aus.
PL / SQL SELECT INTO-Beispiele
Verwenden wir zur Demonstration die Tabellen customers
und contacts
in der Beispieldatenbank.
A) PL / SQL SELECT INTO – Auswahl eines Spaltenbeispiels
Im folgenden Beispiel wird eine SELECT INTO
-Anweisung verwendet, um den Namen eines Kunden basierend auf der Kunden-ID abzurufen, die der Primärschlüssel der Tabelle.
In diesem Beispiel:
- Deklarieren Sie zunächst eine Variable
l_customer_name
, deren Datentyp verankert sich in den Namensspalten der Kundentabelle. Diese Variable enthält den Kundennamen. - Verwenden Sie zweitens die Anweisung
SELECT INTO
, um einen Wert aus der Namensspalte auszuwählen und ihn der Variable. - Zeigen Sie drittens den Kundennamen mit der Prozedur
dbms_output.put_line
an.
Weil die Die Tabelle customers
enthält nur eine Zeile mit der Kunden-ID 100, der Codeblock zeigt den Kundennamen an.
If Wenn es keine solche Zeile gäbe, würde der Codeblock mit einer nicht behandelten NO_DATA_FOUND
Ausnahme fehlschlagen.
B) PL / SQL SELECT INTO – Auswahl eines vollständigen Zeilenbeispiels
Im folgenden Beispiel wird die gesamte Zeile aus der Tabelle customers
für eine bestimmte Kunden-ID abgerufen:
Hier ist die Ausgabe:
In diesem Beispiel:
- Deklarieren Sie zunächst einen Datensatz basierend auf der Zeile des
customers
Tabelle. Dieser Datensatz enthält die gesamte Zeile der Tabellecustomers
. - Wählen Sie anschließend den Kunden mit der ID 100 in der Datei
r_customer
record. - Zeigen Sie drittens den Namen und die Website des Kunden an.
C) PL / SQL SELECT INTO – Auswahl von Daten in mehreren Variablen Beispiel
Im folgenden Beispiel werden die Namen von Kunden und Kontakten aus den Tabellen customers
und contacts
für eine bestimmte Kunden-ID abgerufen.
Oracle hat die folgende Ausgabe ausgegeben:
In diesem Beispiel:
- Deklarieren Sie zunächst drei Variablen
l_customer_name
,l_contact_first_name
,l_contact_last_name
, um den Namen des Kunden und des Kontakts zu speichern. - Verwenden Sie zweitens die Anweisung
SELECT INTO
, um Kunden- und Kontaktnamen der Kunden-ID 100 aus dencustomers
und Tabellen in die entsprechenden Variablen -
l_customer_name
,l_contact_first_name
,l_contact_last_name
. - Zeigen Sie drittens das an Kunden- und Kontaktnamen.
PL / SQL AUSWÄHLEN IN häufige Fehler
Wenn die Anzahl der Spalten und der Ausdruck in der SELECT
-Klausel ist größer als die Anzahl der Variablen in der INTO
-Klausel. Oracle gibt diesen Fehler aus:
Oracle gibt den folgenden Fehler aus, wenn die Anzahl der Spalten und Ausdrücke in der SELECT
-Klausel geringer ist als die Anzahl der Variablen in der INTO
-Klausel:
Wenn die Anzahl der Variablen und Elemente in der Auswahlliste gleich ist, die entsprechenden Datentypen jedoch nicht kompatibel sind, sodass Oracle nicht implizit von einem Typ in konvertieren kann das andere. Der folgende Fehler wird ausgegeben:
Nun sollten Sie wissen, wie Sie PL / SQL SELECT INTO
verwenden Anweisung zum Abrufen einer einzelnen Zeile aus einer Tabelle in Variablen.
- War dieses Tutorial hilfreich?
- JaNein