Esto es lo que dice la documentación de Oracle sobre este error

Referencia:documentación de Oracle
Lista de verificación para resolver la declaración SQL no válida ORA-00900
(1) Este error suele ocurrir cuando intenta crear un procedimiento de Oracle y la opción de procedimiento no está instalada. Para determinar si se instaló la opción de procedimiento, abra una sesión de Oracle con SQL*Plus. Si el anuncio de PL/SQL no aparece, entonces sabrá que la opción de procedimiento no se ha instalado.
(2) ORA-00900 puede ocurrir al intentar usar un enlace de base de datos. Muchos usuarios descubren que se encuentran con ORA-00900 cuando intentan consultar campos que pueden haber funcionado antes de 2000. Para resolver ORA-00900, en la base de datos local, intente modificar su parámetro init.ora NLS_DATE_FORMAT, luego use comillas dobles (en lugar de solo) alrededor del valor
alter session set NLS_DATE_FORMAT = "DD-MON-YYYY";
(3) Uso de la instrucción de ejecución en la conexión JDBC/desarrollador sql
execute dbms_utility.analyze_schema('OKX','ESTIMATE',30); ORA-00900: invalid SQL statement
ejecutar es la opción sqlplus, debemos usar cualquiera de las siguientes opciones en la aplicación/otros programas de lenguaje
begin execute dbms_utility.analyze_schema('OKX','ESTIMATE',30); end; or begin execute dbms_utility.analyze_schema('OKX','ESTIMATE',30) end; /
(4) Muchas veces los desarrolladores cometen errores en el bloque plsql y escriben sentencias como
v_dynsql:='dbms_utility.analyze_schema('OKX','ESTIMATE',30)'; execute immediate v_dynsql;
El código anterior da ORA-00900 como dbms_utility.analyze_schema('OKX','ESTIMATE',30);
no es una afirmación válida
La solución es usar begin y end como se indica a continuación
v_dynsql:= q'[BEGIN dbms_utility.analyze_schema('OKX','ESTIMATE',30); END;]'; execute immediate v_dynsql;
(5) Si desea describir una tabla en 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
No puede usar desc aquí. es posible que queramos seleccionarlo según la 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) Si está tratando de explicar el plan sobre la declaración de creación de vista
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 le gusten las diversas formas de corregir los errores de ORA. Por favor, envíe sus comentarios al respecto
Artículos relacionados
ORA-00911:carácter no válido
ORA-29913:error al ejecutar la llamada ODCIEXTTABLEOPEN
ORA-27154:error de creación posterior/espera durante el inicio
ORA-01111
ORA -00257:error del archivador, conexión interna solo hasta que se libere
ora-29283:operación de archivo no válida