webentwicklung-frage-antwort-db.com.de

Lösung: SQL-Fehler: ORA-00604: Fehler auf rekursiver SQL-Ebene 1 aufgetreten

Wenn ich versuche, die Tabelle zu löschen, erhalte ich eine Fehlermeldung

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

Ich habe folgende Zeile aus Fehler entdeckt.

exact fetch returns more than requested number of rows

Dann dachte ich ... Oracle erwartete eine Reihe, aber es bekam mehrere Reihen. Und nur die Dual-Tabelle hat dieses Merkmal, das nur eine Zeile zurückgibt.

Und ich erinnere mich daran, dass ich einige Änderungen an der Dual-Tabelle und an der Ausführung der Dual-Tabelle vorgenommen habe. Dann mehrere Reihen gefunden.

Jetzt habe ich die dual-Tabelle gekürzt und nur eine Zeile mit X-Wert eingefügt. Und alles funktioniert gut. 

0
Ravi

Eine mögliche Erklärung ist ein Datenbankauslöser, der für jede DROP TABLE-Anweisung ausgelöst wird. Fragen Sie die _TRIGGERS-Wörterbuchsichten ab, um den Trigger zu finden:

select * from all_triggers
where trigger_type in ('AFTER EVENT', 'BEFORE EVENT')

deaktivieren Sie jeden verdächtigen Auslöser mit

   alter trigger <trigger_name> disable;

und versuchen Sie, Ihre DROP TABLE-Anweisung erneut auszuführen

1
Frank Schmitt