Jeśli próbujesz uruchomić zapytanie wielowierszowe w SQLcl lub SQL*Plus i ciągle otrzymujesz błąd, taki jak „Nieznane polecenie”, ale uruchomienie go w SQL Developer nie powoduje takiego błędu, może ten post pomoże.
Domyślnie SQLcl i SQL*Plus nie zezwalają na puste wiersze w instrukcjach SQL. Możesz to jednak zmienić za pomocą SET SQLBLANKLINES
polecenie.
Składnia
Składnia wygląda tak:
SET SQLBL[ANKLINES] {ON | OFF}
Oznacza to, że możesz użyć pełnych SQLBLANKLINES
lub jego skróconą formę SQLBL
, i możesz ustawić go na ON
lub OFF
.
Jest OFF
domyślnie. Ustawienie go na ON
umożliwi Ci uwzględnienie pustych wierszy w kodzie.
Przykład
Najpierw sprawdzę moje obecne ustawienie:
SHOW SQLBLANKLINES
Wynik:
sqlblanklines OFF
Obecnie obsługa pustych linii jest wyłączona.
Załóżmy, że mamy następującą instrukcję SQL:
SELECT 3 * 10
FROM DUAL;
Oto, co się stanie, jeśli skopiuję i wkleję to do SQLcl i spróbuję go wykonać:
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
Wyrażenie nie powiedzie się z powodu pustej linii.
Ustaw SQLBLANKLINES
na ON
Teraz ustawmy SQLBLANKLINES
na ON
:
SET SQLBLANKLINES ON
I uruchom zapytanie ponownie:
SELECT 3 * 10
FROM DUAL;
Oto, co dostaję:
SQL> SELECT 3 * 10 2 3* FROM DUAL; 3*10 _______ 30
Tym razem stwierdzenie się powiedzie.
Formularz skrócony
Możesz alternatywnie użyć skróconej formy SQLBL
.
Przykład zwracania bieżącego ustawienia:
SHOW SQLBL
Wynik:
sqlblanklines ON
Przykład wyłączenia i ponownego wyświetlenia:
SET SQLBL OFF
SHOW SQLBL
Wynik:
sqlblanklines OFF