ORA-00900 instrução SQL inválida é um dos erros comuns
Aqui está o que a documentação do oráculo diz sobre esse erro
Referência:documentação da Oracle
Lista de verificação para resolver a instrução SQL inválida ORA-00900
(1) Esse erro geralmente ocorre quando você está tentando criar um procedimento Oracle e a Opção de procedimento não está instalada. Para determinar se a Opção de procedimento foi instalada, abra uma sessão do Oracle usando o SQL*Plus. Se o banner PL/SQL não for exibido, você saberá que a Opção de procedimento não foi instalada.
(2) ORA-00900 pode ocorrer ao tentar usar um link de banco de dados. Muitos usuários descobrem que estão encontrando ORA-00900 ao tentar consultar campos que podem ter funcionado antes de 2000. Para resolver ORA-00900, no banco de dados local, tente alterar seu parâmetro init.ora NLS_DATE_FORMAT e use aspas duplas (em vez de único) em torno do valor
alter session set NLS_DATE_FORMAT = "DD-MON-YYYY";
(3) Usando a instrução execute na conexão sql developer/JDBC
execute dbms_utility.analyze_schema('OKX','ESTIMATE',30); ORA-00900: invalid SQL statement
execute é a opção sqlplus, devemos usar uma das opções abaixo em aplicativos/outros programas de linguagem
begin execute dbms_utility.analyze_schema('OKX','ESTIMATE',30); end; or begin execute dbms_utility.analyze_schema('OKX','ESTIMATE',30) end; /
(4) Muitas vezes os desenvolvedores cometem erros no bloco plsql e escrevem instruções como
v_dynsql:='dbms_utility.analyze_schema('OKX','ESTIMATE',30)'; execute immediate v_dynsql;
O código acima fornece ORA-00900 como dbms_utility.analyze_schema('OKX','ESTIMATE',30);
não é uma declaração válida
A correção é usar begin e end conforme indicado abaixo
v_dynsql:= q'[BEGIN dbms_utility.analyze_schema('OKX','ESTIMATE',30); END;]'; execute immediate v_dynsql;
(5) Se você deseja descrever uma tabela em PLSQL
SQL> begin execute immediate 'describe FND_USER'; 2 end; 3 / begin execute immediate 'describe FND_USER'; * ERROR at line 1: ORA-00900: invalid SQL statement ORA-06512: at line 1
Você não pode usar desc aqui. podemos querer selecioná-lo com base na consulta
begin execute immediate q'[select COLUMN_NAME,DATA_TYPE from all_tab_columns where table_name = 'FND_USER' order by column_id]'; end; /
(6) Se você está tentando explicar o plano de criação da declaração de visualização
SQL> explain plan for create view test as select * from dual; explain plan for create view test as select * from dual * ERROR at line 1: ORA-00900: invalid SQL statement
Espero que você goste das várias maneiras de corrigir os erros ORA. Por favor, forneça feedback sobre isso
Artigos relacionados
ORA-00911:caractere inválido
ORA-29913:erro ao executar callout ODCIEXTTABLEOPEN
ORA-27154:post/wait create falhou durante a inicialização
ORA-01111
ORA -00257 :erro do arquivador, conectar apenas internamente até liberar
ora-29283:operação de arquivo inválida