sql >> Base de Datos >  >> RDS >> Oracle

SET SQLBLANKLINES:Cómo permitir líneas en blanco en SQLcl y SQL*Plus

Si está intentando ejecutar una consulta de varias líneas en SQLcl o SQL*Plus, y sigue recibiendo un error como "Comando desconocido", pero ejecutarlo en SQL Developer no provoca tal error, tal vez esta publicación lo ayude.

De forma predeterminada, SQLcl y SQL*Plus no permiten líneas en blanco en las declaraciones de SQL. Sin embargo, puede cambiar esto con SET SQLBLANKLINES comando.

Sintaxis

La sintaxis es así:

SET SQLBL[ANKLINES] {ON | OFF}

Esto significa que puede usar el SQLBLANKLINES completo o su forma abreviada SQLBL , y puede establecerlo en ON o OFF .

Está OFF por defecto. Configurándolo en ON le permitirá incluir líneas en blanco en su código.

Ejemplo

Primero, revisaré mi configuración actual:

SHOW SQLBLANKLINES

Resultado:

sqlblanklines OFF

Actualmente, la compatibilidad con líneas en blanco está deshabilitada.

Supongamos que tenemos la siguiente instrucción SQL:

SELECT 3 * 10 

FROM DUAL;

Esto es lo que sucede si copio y pego eso en SQLcl e intento ejecutarlo:

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

La instrucción falla debido a la línea en blanco.

Establecer SQLBLANKLINES a ON

Ahora configuremos SQLBLANKLINES a ON :

SET SQLBLANKLINES ON

Y ejecuta la consulta de nuevo:

SELECT 3 * 10 

FROM DUAL;

Ahora esto es lo que obtengo:

SQL> SELECT 3 * 10 
  2  
  3* FROM DUAL;

   3*10 
_______ 
     30

Esta vez la declaración tiene éxito.

Forma abreviada

Alternativamente, puede usar la forma abreviada SQLBL .

Ejemplo de devolución de la configuración actual:

SHOW SQLBL

Resultado:

sqlblanklines ON

Ejemplo de apagarlo y mostrarlo de nuevo:

SET SQLBL OFF
SHOW SQLBL

Resultado:

sqlblanklines OFF