Om du försöker köra en flerradsfråga i SQLcl eller SQL*Plus, och du får ett felmeddelande som "Okänt kommando", men att köra det i SQL Developer orsakar inget sådant fel, kanske det här inlägget hjälper.
Som standard tillåter inte SQLcl och SQL*Plus tomma rader i SQL-satser. Du kan dock ändra detta med SET SQLBLANKLINES kommando.
Syntax
Syntaxen ser ut så här:
SET SQLBL[ANKLINES] {ON | OFF}
Det betyder att du kan använda antingen hela SQLBLANKLINES eller dess förkortning SQLBL , och du kan ställa in den på antingen ON eller OFF .
Den är OFF som standard. Ställer in den på ON gör det möjligt för dig att inkludera tomma rader i din kod.
Exempel
Först ska jag kontrollera min nuvarande inställning:
SHOW SQLBLANKLINES Resultat:
sqlblanklines OFF
För närvarande är stöd för tomma rader inaktiverat.
Anta att vi har följande SQL-sats:
SELECT 3 * 10
FROM DUAL; Här är vad som händer om jag kopierar och klistrar in det i SQLcl och försöker köra det:
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
Uttrycket misslyckas på grund av den tomma raden.
Ställ in SQLBLANKLINES till ON
Låt oss nu ställa in SQLBLANKLINES till ON :
SET SQLBLANKLINES ON Och kör frågan igen:
SELECT 3 * 10
FROM DUAL; Nu är det här vad jag får:
SQL> SELECT 3 * 10
2
3* FROM DUAL;
3*10
_______
30 Den här gången lyckas uttalandet.
Shorthand Form
Du kan alternativt använda förkortningen SQLBL .
Exempel på att återställa den aktuella inställningen:
SHOW SQLBL Resultat:
sqlblanklines ON
Exempel på att stänga av den och visa den igen:
SET SQLBL OFF
SHOW SQLBL Resultat:
sqlblanklines OFF