Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2006, 12h11   #1
Invité de passage
 
Inscription : juin 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 7
Points : 2
Points : 2
Par défaut [Oracle 9i] Procedure passant en statut invalide

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!
Eccoon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 08h31   #2
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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:

Code :
1
2
 
ALTER PROCEDURE <proc> COMPILE;
et de voir les erreurs affichées.

Vous pouvez aussi consulter toutes les erreurs de compilation avec la vue USER_ERRORS.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 09h01   #3
Membre du Club
 
Inscription : février 2004
Messages : 116
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : février 2004
Messages : 116
Points : 56
Points : 56
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.
gaultier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 16h57   #4
Membre du Club
 
Inscription : mars 2004
Messages : 98
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 98
Points : 41
Points : 41
par experience si le lien est coupé entre les deux BD, le code qui y fait reference tombe à l'etat invalide
learn est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h41.


 
 
 
 
Partenaires

Hébergement Web