PLS-00103: Das Symbol "Dateiende" wurde gefunden, wenn eines der folgenden Ereignisse erwartet wird:;

7

Ich führe das folgende Skript aus -

%Vor%

Und habe den Fehler -

%Vor%     
Bhabani Sankar Mishra 06.08.2011, 14:41
quelle

4 Antworten

14

In einem PL / SQL-Block sollte die select-Anweisung eine into -Klausel haben:

%Vor%     
diederikh 06.08.2011, 15:05
quelle
7

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.

    
Codo 06.08.2011 15:10
quelle
6

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).

    
APC 07.08.2011 02:46
quelle
3

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.

    
steve godfrey 07.08.2011 15:48
quelle

Tags und Links