Oracle
 sql >> Database >  >> RDS >> Oracle

SET SQLBLANKLINES:come consentire righe vuote in SQLcl e SQL*Plus

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