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 Tabelle customers.
  • 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 den customers 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

Schreibe einen Kommentar

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