Oracle 11g: ORA-00604: erreur s'est produite lors de récursive SQL niveau 1
J'ai exécuté le script ci-dessous et ça fonctionne:
BEGIN
FOR cur_rec IN (SELECT object_name, object_type
FROM user_objects
WHERE object_type IN
('TABLE',
'VIEW',
'PACKAGE',
'PROCEDURE',
'FUNCTION',
'SEQUENCE'
))
LOOP
BEGIN
IF cur_rec.object_type = 'TABLE'
THEN
EXECUTE IMMEDIATE 'DROP '
|| cur_rec.object_type
|| ' "'
|| cur_rec.object_name
|| '" CASCADE CONSTRAINTS';
ELSE
EXECUTE IMMEDIATE 'DROP '
|| cur_rec.object_type
|| ' "'
|| cur_rec.object_name
|| '"';
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ( 'FAILED: DROP '
|| cur_rec.object_type
|| ' "'
|| cur_rec.object_name
|| '"'
);
END;
END LOOP;
END;
/
Mais le problème est que, après cela, je ne peux pas accorder, de créer ou de drop etc. dans ma base de données, même moi, je suis en utilisant un utilisateur sysdba.
J'obtiens l'erreur:
ORA-00604: erreur s'est produite lors de récursive SQL niveau 1
ORA-00942: la table ou la vue n'existe pas
S'il vous plaît aider. Merci.
- S'il vous plaît dites-moi, vous n'avez pas exécuté le script le SYS ou de l'utilisateur du SYSTÈME...
- pas de. je utiliser un autre utilisateur sur l'exécution de ce script qui est ICBI.
Vous devez vous connecter pour publier un commentaire.
Une des causes possibles de l'récursive erreur SQL se déclenche. Vous pourriez avoir couru dans ce scénario:
Pour obtenir une liste de tous les déclencheurs, vous pouvez utiliser
(vous pouvez exclure au niveau de la ligne des déclencheurs parce qu'ils conceptuellement appartiennent à la table et aurait été supprimées automatiquement lorsque vous l'avez laissé tomber de la table). Après que vous avez identifié la délinquance déclencheur, vous pouvez désactiver ou le supprimer.