Wenn Sie versuchen, eine mehrzeilige Abfrage in SQLcl oder SQL*Plus auszuführen, und Sie immer wieder einen Fehler wie „Unbekannter Befehl“ erhalten, aber die Ausführung in SQL Developer keinen solchen Fehler verursacht, hilft Ihnen vielleicht dieser Beitrag.
Standardmäßig lassen SQLcl und SQL*Plus keine Leerzeilen in SQL-Anweisungen zu. Sie können dies jedoch mit dem SET SQLBLANKLINES
ändern Befehl.
Syntax
Die Syntax lautet wie folgt:
SET SQLBL[ANKLINES] {ON | OFF}
Das bedeutet, dass Sie entweder die vollständigen SQLBLANKLINES
verwenden können oder seine Kurzform SQLBL
, und Sie können es entweder auf ON
setzen oder OFF
.
Es ist OFF
standardmäßig. Setzen Sie es auf ON
können Sie Leerzeilen in Ihren Code einfügen.
Beispiel
Zuerst überprüfe ich meine aktuelle Einstellung:
SHOW SQLBLANKLINES
Ergebnis:
sqlblanklines OFF
Derzeit ist die Unterstützung für Leerzeilen deaktiviert.
Angenommen, wir haben die folgende SQL-Anweisung:
SELECT 3 * 10
FROM DUAL;
Folgendes passiert, wenn ich das kopiere und in SQLcl einfüge und versuche, es auszuführen:
SQL> SELECT 3 * 10 2 3* FROM DUAL; Error starting at line : 1 in command - SELECT 3 * 10 Error at Command Line : 1 Column : 13 Error report - SQL Error: ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected" *Cause: *Action: Error starting at line : 1 in command - FROM DUAL Error report - Unknown Command
Die Anweisung schlägt aufgrund der Leerzeile fehl.
Setzen Sie SQLBLANKLINES
auf ON
Lassen Sie uns nun SQLBLANKLINES
setzen auf ON
:
SET SQLBLANKLINES ON
Und führen Sie die Abfrage erneut aus:
SELECT 3 * 10
FROM DUAL;
Jetzt bekomme ich Folgendes:
SQL> SELECT 3 * 10 2 3* FROM DUAL; 3*10 _______ 30
Diesmal ist die Anweisung erfolgreich.
Kurzform
Alternativ können Sie auch die Kurzform SQLBL
verwenden .
Beispiel für die Rückgabe der aktuellen Einstellung:
SHOW SQLBL
Ergebnis:
sqlblanklines ON
Beispiel zum Ausschalten und erneuten Anzeigen:
SET SQLBL OFF
SHOW SQLBL
Ergebnis:
sqlblanklines OFF