Ich führe das folgende Skript aus -
%Vor%Und habe den Fehler -
%Vor%In PL / SQL können Sie nicht nur einige Daten auswählen. Wohin soll das Ergebnis gehen?
Ihre Optionen sind:
Entfernen Sie BEGIN
und END
und führen Sie SELECT mit SQL * plus oder einem anderen Tool aus, das eine SQL-Anweisung ausführen und das Ergebnis irgendwo darstellen kann.
Verwenden Sie SELECT department_name INTO dep_name
, um das Ergebnis in eine PL / SQL-Variable zu schreiben (funktioniert nur, wenn Ihr SELECT eine einzelne Zeile zurückgibt)
Verwenden Sie SELECT department_name BULK COLLECT INTO dep_name_table
, um das Ergebnis in eine PL / SQL-Tabelle zu schreiben (funktioniert für mehrere Zeilen)
Vielleicht können Sie auch beschreiben, was Sie erreichen möchten und in welcher Umgebung Sie den SQL- oder PL / SQL-Code ausführen möchten.
PLS-00103
bedeutet immer, dass der Compiler geschleudert wurde, weil wir einen Syntaxfehler gemacht haben. Es wäre wirklich nett, wenn der Nachrichtentext sagte: You have made a syntax error, please check your code
, aber leider nicht.
Die Dokumentation von Oracle ist umfassend und online. Sie finden den Abschnitt zur Integration von SQL-Abfragen in PL / SQL hier . Ich fordere Sie auf, es zu lesen, um Ihrer nächsten Frage zuvorzukommen. Denn sobald Sie den einfachen Syntax-Bloomer repariert haben, werden Sie TOO_MANY_ROWS treffen (vorausgesetzt, Sie haben mehr als eine Abteilung).
Um das too_many_rows-Problem zu vermeiden, könnten Sie einen Cursor verwenden, so etwas (ich habe das nicht getestet, aber in diesen Zeilen)
%Vor%Damit wird der erste in der Tabelle gefundene Wert in v_department eingefügt. Verwenden Sie die ORDER BY-Klausel, um sicherzustellen, dass die zurückgegebene Zeile die von Ihnen benötigte ist, vorausgesetzt, dass zwei verschiedene Werte möglich waren.