ORA-00900 L'instruction SQL invalide est l'une des erreurs courantes
Voici ce que dit la documentation Oracle à propos de cette erreur
Référence :documentation Oracle
Liste de contrôle pour résoudre l'instruction SQL invalide ORA-00900
(1) Cette erreur se produit généralement lorsque vous essayez de créer une procédure Oracle et que l'option procédurale n'est pas installée. Pour déterminer si l'option procédurale a été installée, ouvrez une session Oracle à l'aide de SQL*Plus. Si la bannière PL/SQL ne s'affiche pas, vous savez que l'option procédurale n'a pas été installée.
(2) ORA-00900 peut se produire lors de la tentative d'utilisation d'un lien de base de données. De nombreux utilisateurs constatent qu'ils rencontrent ORA-00900 lorsqu'ils tentent d'interroger des champs qui peuvent avoir fonctionné avant 2000. Pour résoudre ORA-00900, sur la base de données locale, essayez de modifier votre paramètre init.ora NLS_DATE_FORMAT, puis utilisez des guillemets doubles (au lieu de single) autour de la valeur
alter session set NLS_DATE_FORMAT = "DD-MON-YYYY";
(3) Utilisation de l'instruction d'exécution sur le développeur sql/la connexion JDBC
execute dbms_utility.analyze_schema('OKX','ESTIMATE',30); ORA-00900: invalid SQL statement
execute est l'option sqlplus, nous devons utiliser l'une des options ci-dessous dans les programmes d'application/autres langages
begin execute dbms_utility.analyze_schema('OKX','ESTIMATE',30); end; or begin execute dbms_utility.analyze_schema('OKX','ESTIMATE',30) end; /
(4) Souvent, les développeurs font des erreurs dans le bloc plsql et écrivent des instructions comme
v_dynsql:='dbms_utility.analyze_schema('OKX','ESTIMATE',30)'; execute immediate v_dynsql;
Le code ci-dessus donne ORA-00900 comme dbms_utility.analyze_schema('OKX','ESTIMATE',30);
n'est pas une déclaration valide
Le correctif consiste à utiliser le début et la fin comme indiqué ci-dessous
v_dynsql:= q'[BEGIN dbms_utility.analyze_schema('OKX','ESTIMATE',30); END;]'; execute immediate v_dynsql;
(5) Si vous voulez décrire une table 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
Vous ne pouvez pas utiliser desc ici. nous pouvons vouloir le sélectionner en fonction de la requête
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 vous essayez d'expliquer le plan sur la déclaration de création de vue
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
J'espère que vous aimez les différentes façons de corriger les erreurs ORA. Merci de nous faire part de vos commentaires
Articles connexes
ORA-00911 :caractère non valide
ORA-29913 :erreur lors de l'exécution de l'appel ODCIEXTTABLEOPEN
ORA-27154 :échec de la création post/attente au démarrage
ORA-01111
ORA -00257 :erreur de l'archiveur, connexion interne uniquement jusqu'à la libération
ora-29283 :opération de fichier invalide