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

SET SQLBLANKLINES:So lassen Sie Leerzeilen in SQLcl &SQL*Plus zu

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