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