|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
bonjour à tous,
Voilà, j'ai un Package pl/sql qui comporte plusieurs Procédures. Je voudrais utiliser une variable Globale pour tout le package et l'appeler depuis mes procédures avec sa valeur initiale. J'ai pu créer la variable dans les SPEC du package, mais impossible d'initialiser sa valeur pour toutes les procédures. Une idée?? Merci.
|
|
|
00
|
|
|
#2 | ||||
|
Membre éprouvé
![]() |
Bonjour,
L'initialisation de la variable se fait au chargement du package, pas à l'appel d'une procédure. C'est-à-dire qu'elle sera initialisée au moment du premier appel à l'une des procédures, mais ne sera plus initialisée ensuite. Si la procédure modifie cette variable, elle gardera la valeur modifiée. Pour l'initialisation, soit c'est une constante, et tu peux le mettre dans la déclaration de la variable : Code :
Code :
|
||||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
salut et merci de ton aide.
En fait j'ai déjà fait comme tu viens de me dire dans le second cas, mais j'ai remarqué qu'à chaque fois qu'une procedure se lance et bien elle fait appel à l'initialisation de la variable. Je voudrais plutôt que l'initialisation se fasse une et une seule fois dans tout le package. |
|
|
00
|
|
|
#4 |
![]() Inscription : décembre 2002 Messages : 2 385 ![]() |
Et encore une victime du syndrome de la boule de cristal !
Comment espérez-vous qu'on puisse vous aider quand vous ne fournissez ni votre code source ni les erreurs rencontrées ? De plus, préciser sa version d'Oracle et le système d'exploitation doit être un réflexe quand on pose une question dans le forum. En omettant ces informations, vous découragez toutes les bonnes volontés, nombreuses ici, qui sont prêtes à vous aider mais n'ont ni le temps ni la patience de vous tirer les vers du nez. Et pour faire bonne mesure : http://www.developpez.net/forums/d28...s-lire-poster/
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
10
|
|
|
#5 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Peu être que vous avez raison, mais xdescamp m'a bien compris, car je pense que ma question est toute simple.
Je n'ai pas jugé important de préciser la version d'oracle ni le code ( puisque je n'ai pas encore de code!! Sinon pour le code, c'est exactement celui de xdescamp de j'ai essayé. |
|
|
01
|
|
|
#6 | ||
|
Membre éprouvé
![]() |
L'initialisation ne se déclenche bien qu'une seule fois. La preuve par l'exemple:
Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Ah oui, c'est vrai, en fait j'appelle la première procédure ensuite je fais un sql*loader puis j'appelle la 2ème procédure. Donc je crois que la variable s'initialise 2 fois à cause de sql*loader.
|
|
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() |
Si tu quittes SQL*Plus pour te reconnecter ensuite, alors effectivement il réinitialise le package pour la nouvelle session.
|
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Donc si je veux que mon information reste inchangée, je dois obligatoirement utiliser une table?
N'y a t il pas un autre moyen? |
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
le context se base aussi sur la session du coup je perdrais sa valeur d'origine...
Sinon pour le trigger, je peux le faire depuis un package? même si je change de session?. |
|
|
00
|
|
|
#12 | ||||||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Tu peux faire un truc du genre :
Code :
Code :
Code :
En espérant avoir compris le besoin |
||||||
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
ok, merci je vais tester tout ça...
|
|
|
00
|
|
|
#14 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Citation:
Citation:
|
||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com