|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 7 ![]() |
Bonjour à tous,
Je rencontre actuellement un problème que je n'arrive pas à résoudre. Avant tout je tiens à préciser que je ne suis pas un expert Oracle, de plus la base sur laquelle je travaille n'est pas de moi et je ne suis donc pas le mieux placé pour la débugger. Voici mon problème, j'ai une procédure stockée qui passe parfois en statut invalide sans que je comprenne pourquoi. D'autre fois ( le plus souvent ) je ne rencontre pas ce problème. Cette procédure fait appel à d'autre procédures qui utilisent un DBLink vers une base distante. Ma première piste fut de penser que la connexion vers la base distante n'était pas possible suite à des problèmes réseaux mais après avoir fait de nombreux tests (couper la connection entre les 2 bases, arrêter la base distante...) ceci ne semble pas être la cause de mon problème. J'ai lu sur une documentation qu'une procédure Oracle pouvait passer en statut invalide pour 3 raisons: -Un objet dont dépend la procédure a été dropé ou altéré -Un privilège système dont dépend la procédure a été supprimé -Un privilège sur un objet dont dépend la procédure a été dropé ou altéré J'ai effectué quelques tests et recherches et je n'ai pas l'impression que l'un des 3 points ci-dessus soit la cause de mon problème. La documentation en question date cependant de la version 7 d'Oracle, et je suppose que sur la version 9i il existe peut être d'autre raisons qui pourraient déclencher le passage d'une procédure en statut invalide. Auriez-vous quelques pistes pour aiguiller mes recherches? Merci d'avance! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Essayez d'utiliser la vue USER_DEPENDENCIES pour voir s'il y a un objet dont dépend votre procédure qui serait aussi invalide.
Essayez de recompiler l'objet avec: et de voir les erreurs affichées. Vous pouvez aussi consulter toutes les erreurs de compilation avec la vue USER_ERRORS. |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : février 2004 Messages : 116 ![]() |
Bonjour,
J'ai déjà rencontré ce cas aussi. Ce problème survient lorsque l'on modifie les tables ou les vues qui sont utilisées dans la procédure. Mais lorsqu'une procédure est invalide oracle renvoie l'erreur ORA-04020. Dans mes forms, je recupère ce code et j'affiche à l'écran de l'utilisateur un message d'erreur. Celui ci n'a plus qu'à prévenir le service informatique. Avec l'utitlitaire TOAD, il est très facile de voir si des procédures sont invalides et de toutes les recomplier à la volée. Voici pour mon expérience. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : mars 2004 Messages : 98 ![]() |
par experience si le lien est coupé entre les deux BD, le code qui y fait reference tombe à l'etat invalide
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com