Se você está tentando executar uma consulta de várias linhas no SQLcl ou SQL*Plus e continua recebendo um erro como “Comando Desconhecido”, mas executá-lo no SQL Developer não causa esse erro, talvez este post ajude.
Por padrão, SQLcl e SQL*Plus não permitem linhas em branco em instruções SQL. No entanto, você pode alterar isso com o
SET SQLBLANKLINES
comando. Sintaxe
A sintaxe fica assim:
SET SQLBL[ANKLINES] {ON | OFF}
Isso significa que você pode usar o
SQLBLANKLINES
completo ou sua forma abreviada SQLBL
, e você pode configurá-lo para ON
ou OFF
. Está
OFF
por padrão. Configurando para ON
permitirá que você inclua linhas em branco em seu código. Exemplo
Primeiro, vou verificar minha configuração atual:
SHOW SQLBLANKLINES
Resultado:
sqlblanklines OFF
Atualmente, o suporte para linhas em branco está desabilitado.
Suponha que temos a seguinte instrução SQL:
SELECT 3 * 10
FROM DUAL;
Aqui está o que acontece se eu copiar e colar isso no SQLcl e tentar executá-lo:
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
A instrução falha, devido à linha em branco.
Definir SQLBLANKLINES
para ON
Agora vamos definir
SQLBLANKLINES
para ON
:SET SQLBLANKLINES ON
E execute a consulta novamente:
SELECT 3 * 10
FROM DUAL;
Agora aqui está o que eu recebo:
SQL> SELECT 3 * 10 2 3* FROM DUAL; 3*10 _______ 30
Desta vez, a declaração é bem-sucedida.
Formulário abreviado
Você também pode usar a forma abreviada
SQLBL
. Exemplo de retorno da configuração atual:
SHOW SQLBL
Resultado:
sqlblanklines ON
Exemplo de desligá-lo e exibi-lo novamente:
SET SQLBL OFF
SHOW SQLBL
Resultado:
sqlblanklines OFF