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