Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Deklarieren einer Variablen und Festlegen ihres Werts aus einer SELECT-Abfrage in Oracle

AUSWÄHLEN IN

DECLARE
   the_variable NUMBER;

BEGIN
   SELECT my_column INTO the_variable FROM my_table;
END;

Stellen Sie sicher, dass die Abfrage nur eine einzige Zeile zurückgibt:

Standardmäßig darf eine SELECT INTO-Anweisung nur eine Zeile zurückgeben. Andernfalls löst PL/SQL die vordefinierte Ausnahme TOO_MANY_ROWS aus und die Werte der Variablen in der INTO-Klausel sind undefiniert. Stellen Sie sicher, dass Ihre WHERE-Klausel spezifisch genug ist, um nur eine Zeile abzugleichen

Wenn keine Zeilen zurückgegeben werden, löst PL/SQL NO_DATA_FOUND aus. Sie können sich vor dieser Ausnahme schützen, indem Sie das Ergebnis einer Aggregatfunktion wie COUNT(*) oder AVG() auswählen, sofern dies praktikabel ist. Diese Funktionen geben garantiert einen einzelnen Wert zurück, auch wenn keine Zeile der Bedingung entspricht.

Eine Anweisung SELECT ... BULK COLLECT INTO kann mehrere Zeilen zurückgeben. Sie müssen Sammlungsvariablen einrichten, um die Ergebnisse zu speichern. Sie können assoziative Arrays oder verschachtelte Tabellen deklarieren, die nach Bedarf wachsen, um die gesamte Ergebnismenge aufzunehmen.

Die implizite Cursor-SQL und ihre Attribute %NOTFOUND, %FOUND, %ROWCOUNT und %ISOPEN liefern Informationen über die Ausführung einer SELECT INTO-Anweisung.