Se stai tentando di eseguire una query su più righe in SQLcl o SQL*Plus e continui a ricevere un errore come "Comando sconosciuto", ma eseguirlo in SQL Developer non causa tale errore, forse questo post ti aiuterà.
Per impostazione predefinita, SQLcl e SQL*Plus non consentono righe vuote nelle istruzioni SQL. Tuttavia, puoi cambiarlo con SET SQLBLANKLINES
comando.
Sintassi
La sintassi è questa:
SET SQLBL[ANKLINES] {ON | OFF}
Ciò significa che puoi utilizzare l'intero SQLBLANKLINES
o la sua forma abbreviata SQLBL
e puoi impostarlo su ON
o OFF
.
È OFF
per impostazione predefinita. Impostandolo su ON
ti consentirà di includere righe vuote nel tuo codice.
Esempio
Per prima cosa, controllerò la mia impostazione attuale:
SHOW SQLBLANKLINES
Risultato:
sqlblanklines OFF
Attualmente, il supporto per le righe vuote è disabilitato.
Supponiamo di avere la seguente istruzione SQL:
SELECT 3 * 10
FROM DUAL;
Ecco cosa succede se lo copio e incollo in SQLcl e provo a eseguirlo:
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
L'istruzione non riesce, a causa della riga vuota.
Imposta SQLBLANKLINES
su ON
Ora impostiamo SQLBLANKLINES
su ON
:
SET SQLBLANKLINES ON
Ed esegui di nuovo la query:
SELECT 3 * 10
FROM DUAL;
Ora ecco cosa ottengo:
SQL> SELECT 3 * 10 2 3* FROM DUAL; 3*10 _______ 30
Questa volta l'affermazione ha successo.
Forma breve
In alternativa puoi usare la forma abbreviata SQLBL
.
Esempio di restituzione dell'impostazione corrente:
SHOW SQLBL
Risultato:
sqlblanklines ON
Esempio di spegnimento e rivisualizzazione:
SET SQLBL OFF
SHOW SQLBL
Risultato:
sqlblanklines OFF