Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 30/10/2007, 17h29   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 55
Points : 13
Points : 13
Par défaut Paramètres IN de proc -> valeur inconstante : bug pl/sql ?

Salut à tous,

Après plusieurs jours de trace, je viens de trouver une solution à un problème que je n'arrive cependant toujours pas à expliquer.

Pour situer le contexte il s'agit d'un algorithme de propagation sur un réseau routier. La procédure part d'un point P et se propage sur le reseau en cherchant à chaque jonction entre deux tronçons le tronçon suivant.

J'ai donc écrit un bloc anonyme qui appelle une procédure récursive en PL/SQL.
Cette procédure prend un paramètre IN en entrée.
La valeur de ce paramètre ne change pas jusqu'au moment où la procédure est appellée par elle-même avec une nouvelle valeur (la jonction suivante).

Hors il s'est produit la chose suivante : il arrive que la valeur du paramètre en entrée de la procédure change au sein de la même itération de la procédure (avant qu'elle ne se soit appelée elle-même), sans que j'ai travaillé sur cette valeur autrement qu'en lecture. J'ai des logs qui le montrent clairement. De plus évidemment l'algo ne se propageait pas sur tout le réseau.

J'ai pu résoudre le problème en déclarant une constante locale à la procédure et en lui assignant la valeur du paramètre en entrée.
A ce moment tout ce passe bien et mon réseau est parcouru completement.

Avez-vous déjà eu vent de problèmes de ce type ?
Je précise que nous sommes plusieurs développeurs à nous être penchés sur le problème et que personne n'a pu trouver d'explication.

Si vous le souhaitez je peux poster du code pour etayer mon propos.

Cordialement
AyaGizmo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2007, 18h47   #2
Membre émérite
 
Avatar de Yorglaa
 
Inscription : janvier 2004
Messages : 845
Détails du profil
Informations personnelles :
Âge : 41
Localisation : Suisse

Informations forums :
Inscription : janvier 2004
Messages : 845
Points : 939
Points : 939
c'est volontier qu'un petit testcase nous éclairerait...

tu es sur quelle version ?
__________________
Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

Yorglaa
Yorglaa 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 06h47.


 
 
 
 
Partenaires

Hébergement Web