Oracle dbms_job avec le propriétaire invalide
Question
Ok, base de données sur un site de clients qui a des entrées de dbms_job où le schema_user est invalide. (Il semble être l'effet d'amener sur un schéma d'une autre machine en utilisant exp / imp.)
Je voudrais vous débarrasser de ces emplois, mais la procédure d'exploitation standard dit que vous devez vous connecter en tant que propriétaire des emplois à dbms_job.remove (le).
Je pensais que une solution pourrait être, pour créer l'utilisateur dans ce cas, puis l'utiliser pour supprimer le travail.
Pensées?
Edit: Ou même encore effectuer des modifications directes à la sys.job table $ au lieu de passer par l'interface dbms_job?
La solution
Il y a un paquet appartenant à SYS appelé DBMS_IJOB. Cette offre à peu près les mêmes fonctionnalités que DBMS_JOB mais il nous permet de manipuler des emplois appartenant à d'autres utilisateurs.
Si votre travail voyous est le numéro 23 alors cette commande doit tuer:
SQL> exec dbms_ijob.remove(23)
Par privilèges par défaut sur ce paquet ne sont pas accordés à d'autres utilisateurs, vous devez vous connecter SYS afin de l'exécuter. Et rappelez-vous de commettre le changement!