Je suis en train de ré-initialiser un Oracle DB et je vois l'erreur suivante:Impossible de supprimer un utilisateur qui est actuellement connecté
[sql] Failed to execute: drop user conns cascade
[sql] java.sql.SQLException: ORA-01940: cannot drop a user that is currently connected
[sql] Failed to execute: create user conns identified by conns default tablespace tbs_conns temporary tablespace temp1
[sql] java.sql.SQLException: ORA-01920: user name 'CONNS' conflicts with another user or role name
Le problème est que PERSONNE NE est connecté: c'est un instance sur mon ordinateur local, pas de connexions extérieures et juste redémarré et n'ont pas exécuté toute autre chose. La seule chose à laquelle je peux penser est qu'Oracle peut avoir une tâche d'arrière-plan (nettoyage) en cours qui cause ce problème, mais je n'ai aucune idée de comment trouver/gérer cela. Des idées?
Mise à jour: ce script tombe réellement et ré-initialise un tas de tables, et après avoir essayé de relancer quelques fois, je reçu le message d'erreur même mais sur une table différente: Failed to execute: drop user csmy cascade
. Après quelques essais supplémentaires, il est passé à un autre utilisateur: Failed to execute: drop user deb cascade
. Quelque chose semble bloquer ces tableaux, un à la fois, dans l'ordre alphabétique!
Mise à jour 2: après ré-exécution du script environ 15 fois - à chaque fois à défaut à une table un peu plus loin dans l'alphabet - il a obtenu tout le long et les choses fonctionnent. J'aimerais toujours savoir exactement ce qui s'est passé - ma meilleure supposition est un processus de base Oracle, mais je n'ai aucune idée de comment vérifier.
Mise à jour 3: Je suis tombé sur cette même question à nouveau la dernière fois que je re-couru le script, cette fois à défaut sur l'utilisateur « cap ». Pour essayer quelque chose de nouveau, j'ai démarré sqlplus et j'ai exécuté manuellement la commande drop user cap cascade
et, voilà, ça a très bien fonctionné. J'ai essayé le script et il a couru à la fin. Par conséquent, étant donné que la suppression manuelle d'un utilisateur fonctionne sans problèmes, je suspecte fortement que le script lui-même soit à blâmer.
Si la commande 'drop user cap cascade' fonctionne (vraisemblablement de sql * plus) et que votre script a des problèmes, il serait utile de voir votre script. –