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