SQL * Plus führt keine SQL-Skripts aus, die SQL Developer ausführt

8

Ich stehe vor einem sehr nervigen Problem. Ich habe (in Notepad ++) einige SQL-Skripte geschrieben. Wenn ich jetzt versuche, sie mit SQL * Plus (über die Befehlszeile, unter Windows 7) auszuführen, erhalte ich Fehler wie ORA-00933: SQL command not properly ended .

Dann kopiere ich & amp; Fügen Sie das Skript in das SQL Developer-Arbeitsblattfenster ein, klicken Sie auf Ausführen, und das Skript wird ohne Probleme / Fehler ausgeführt.

Nach einer langen Untersuchung kam ich zu dem Schluss, dass SQL * Plus ein Problem mit einigen Leerstellen (einschließlich Zeilenvorschubzeichen und Tabulatoren) hat, die es nicht versteht.

Da ich davon ausgehe, dass SQL Developer weiß, wie man die seltsamen Leerzeichen entfernen kann, habe ich Folgendes versucht: Fügen Sie das Skript in das SQL Developer-Arbeitsblattfenster ein, kopieren Sie es von dort und fügen Sie es wieder in das SQL-Skript ein. Das löste das Problem für einige Dateien, aber nicht für alle Dateien. Einige Dateien zeigen immer wieder Fehler ohne ersichtlichen Grund.

Hatten Sie jemals dieses Problem? Was muss ich tun, um diese Skripte mit SQL * Plus über die Befehlszeile ausführen zu können?

UPDATE:

Ein Beispiel für ein Skript, das nicht mit SQL * Plus funktioniert hat, aber mit SQL Developer funktioniert:

%Vor%

Der Fehler, den ich bekomme:

%Vor%

Wie Sie sehen, liegt der Fehler bei (SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B (aus irgendeinem Grund in allen Dateien, die diesen Fehler erhalten, erscheint der Fehler in der letzten Zeile vor dem abschließenden Semikolon.)

    
rapt 02.05.2012, 02:05
quelle

1 Antwort

17

Entfernen Sie die leeren Zeilen.
In sqlplus bedeutet eine leere Zeile, dass die vorherige Anweisung gestoppt und eine neue gestartet wird.

oder Sie können Leerzeilen setzen:

%Vor%     
A.B.Cade 02.05.2012, 05:17
quelle