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