Quand j'essaie de faire tomber la table, je reçois une erreur
SQL Error: ORA-00604: error occurred at recursive SQL level 2
ORA-01422: exact fetch returns more than requested number of rows
00604. 00000 - "error occurred at recursive SQL level %s"
*Cause: An error occurred while processing a recursive SQL statement
(a statement applying to internal dictionary tables).
*Action: If the situation described in the next error on the stack
can be corrected, do so; otherwise contact Oracle Support.
J'ai remarqué la ligne suivante d'erreur.
exact fetch returns more than requested number of rows
Ensuite, je pensais… Oracle attendait une ligne, mais plusieurs lignes étaient obtenues. Et, seule la table double a cette caractéristique, qui retourne une seule ligne.
Et, je me souviens de ça, j’ai fait peu de changements dans dual table et quand j’ai exécuté dual table. Puis trouvé plusieurs lignes.
Maintenant, j'ai tronqué la table dual
et inséré uniquement la ligne dont la valeur X
. Et tout fonctionne bien.
Une explication possible est un déclencheur de base de données qui se déclenche pour chaque instruction DROP TABLE
. Pour trouver le déclencheur, interrogez les vues de dictionnaire _TRIGGERS
:
select * from all_triggers
where trigger_type in ('AFTER EVENT', 'BEFORE EVENT')
désactiver tout déclencheur suspect avec
alter trigger <trigger_name> disable;
et essayez de relancer votre instruction DROP TABLE