Pokud se pokoušíte spustit víceřádkový dotaz v SQLcl nebo SQL*Plus a stále se vám zobrazuje chyba, jako je „Neznámý příkaz“, ale jeho spuštění v SQL Developer žádnou takovou chybu nezpůsobuje, možná vám tento příspěvek pomůže.
Ve výchozím nastavení SQLcl a SQL*Plus nepovolují prázdné řádky v příkazech SQL. Toto však můžete změnit pomocí SET SQLBLANKLINES
příkaz.
Syntaxe
Syntaxe vypadá takto:
SET SQLBL[ANKLINES] {ON | OFF}
To znamená, že můžete použít buď úplné SQLBLANKLINES
nebo jeho zkrácený tvar SQLBL
a můžete jej nastavit buď na ON
nebo OFF
.
Je OFF
ve výchozím stavu. Nastavení na ON
vám umožní vložit do kódu prázdné řádky.
Příklad
Nejprve zkontroluji své aktuální nastavení:
SHOW SQLBLANKLINES
Výsledek:
sqlblanklines OFF
V současné době je zakázána podpora prázdných řádků.
Předpokládejme, že máme následující příkaz SQL:
SELECT 3 * 10
FROM DUAL;
Zde je to, co se stane, když to zkopíruji a vložím do SQLcl a pokusím se jej spustit:
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
Příkaz selže kvůli prázdnému řádku.
Nastavte SQLBLANKLINES
na ON
Nyní nastavíme SQLBLANKLINES
na ON
:
SET SQLBLANKLINES ON
A spusťte dotaz znovu:
SELECT 3 * 10
FROM DUAL;
Nyní dostanu toto:
SQL> SELECT 3 * 10 2 3* FROM DUAL; 3*10 _______ 30
Tentokrát je příkaz úspěšný.
Formulář ve zkratce
Alternativně můžete použít zkrácený tvar SQLBL
.
Příklad vrácení aktuálního nastavení:
SHOW SQLBL
Výsledek:
sqlblanklines ON
Příklad vypnutí a opětovného zobrazení:
SET SQLBL OFF
SHOW SQLBL
Výsledek:
sqlblanklines OFF