Bonjour à tous !
Je suis un peu nouveau dans le monde du PL/SQL et je suis face à un problème incompréhensible (pour le moment)
J'ai créé une procédure (dont je vais vous épargner le code, car c'est long) qui utilisent des collections d'enregistrements (entre autres). Au final, elles fait plusieurs calculs et insère les résultats dans une table .
Lorsque j'exécute cette procédure via le debugueur de "PL/SQL Developer", tout fonctionne parfaitement. Je peux la lancer autant de fois que je veux avec les même paramètres, et tout est nickel
Par contre, quand je l'exécute "normalement" avec
Elle marche parfaitement la première fois. Mais si je la relance une seconde fois (sans changer les paramètre), j'ai l'impression qu'elle garde toutes les données de l'exécution précédente dans les collections d'enregistrements, car toutes les résultat finaux sont doublés à la seconde exécution, triplés à la troisième, ect.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Begin monPackage.Maprocedure(param1,param2); End;
J'ai également essayé du coup de vider ces collections (via le code macollection.deleteen début ou en fin de procédure, et le résultat est que tout marche la première fois, et la seconde fois, j'ai l'erreur NO DATA FOUND lorsque j'essaie de lire une donnée dans la collection (alors qu'elle se remplie dans la procédure avant la lecture).
Voilà, donc je ne sais pas si je suis clair, mais étant donnée que la procédure fonctionne parfaitement en mode "debuguer", je ne comprend pas le problème.
Merci par avance si vous avez une idée.
Partager