web-dev-qa-db-fra.com

Comment résoudre: Erreur SQL: ORA-00604: une erreur s'est produite au niveau récursif de SQL 1

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.
4
Ravi

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. 

0
Ravi

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

1
Frank Schmitt