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?

Était-ce utile?

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!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top