|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Stan Étudiant Inscription : septembre 2011 Messages : 4 ![]() |
Bonjour,
Voici mon premier message sur developpez.net ! J'ai cherché un bon moment sans trouver de réponses qui soit plus ou moins lié a mon problème... Si jamais vous trouvez un sujet qui parle déjà de ce soucis, j'en suis désolé ... Alors voilà, je voudrai incrémenter ma variable v_no_rdv à chaque loop du cursor. De plus, cette variable doit débuter à partir de la valeur maximum de NOTRA. Pour que vous compreniez un peu plus mon délire: J'ai crée un bouton dans une application php qui va appelé mon curseur. Celui ci sert à copier les champs de certaines tables et de les coller dans une autre. Ma PK de cette autre table étant NOTRA, il faut qu'il soit unique! Pour cette raison, je dois récupérer le NOTRA max, la copier dans ma variable v_no_rdv et ensuite l'incrémenter à chaque lignes trouvé par le curseur Euh..J'espère que j'ai été assez compréhensible ? :/Code :
PS: vous remarquerez que pour mon premier message les balises code sont présentent contrairement à beaucoup d'autres messages |
||
|
|
00
|
|
|
#2 | ||||
|
Membre confirmé
![]() Grégoire MARTINIngénieur développement logiciels Inscription : janvier 2011 Messages : 128 ![]() |
Bonjour,
Passe par une séquence que tu initialise avec le max de NOTRA existant, puis utilise sequence.NEXTVAL. Code :
Code :
__________________
Cordialement. |
||||
|
|
11
|
|
|
#3 | |||
|
Membre expérimenté
![]() François Inscription : février 2010 Messages : 306 ![]() |
Citation:
Ca peut sembler pas important, mais en vrai ca l'est. Pas tant pour ce probleme en particulier, mais pour apprendre a rediger les specifications en ne melangeant pas le besoin et la solution technique. Sinon, une autre maniere de faire au lieu de devoir declarer le curseur et tout avant: Code :
|
|||
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
Attention : Une séquence ne garantit pas qu'il n'y ait pas de trous.
Sinon, le code de la procédure TEMP peut être simplifié. 1 : Préfère le FOR LOOP que le OPEN CURSOR, ça t'évitera de fermer explicitement le curseur. 2 : Tu peux faire un insert select Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Grégoire MARTINIngénieur développement logiciels Inscription : janvier 2011 Messages : 128 ![]() |
En effet mais elle garantit bien l'unicité, ce qui était demandé ici
__________________
Cordialement. |
|
|
01
|
|
|
#6 | |
|
Membre expérimenté
![]() Mohamed HouriInscription : mars 2010 Messages : 286 ![]() |
Citation:
Utilisez une séquence correctement initialisée. C'est votre solution. |
|
|
|
10
|
|
|
#7 |
|
Invité de passage
![]() Stan Étudiant Inscription : septembre 2011 Messages : 4 ![]() |
Merci pour tous vos messages! c'est plaisant d'avoir une telle aide
![]() J'ai donc suivis vos conseils et initialisé une séquence. Elle fonctionnait à merveille jusqu'à ce que mon directeur ( je suis en stage ) me dise que je devais aller rechercher un rdv_no qui existe déjà ![]() Je pense que j'aurai d'autres questions d'ici peu! Merci encore ! Ps: Utiliser une séquence était le mieux adapter pour mon cas |
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() |
c'est vrai McM, si on loope une insertion par une exception par exemple, donc ça va créer un trou, pour cela ,généralement je teste l'insertion avant que la sequence s'ncrémente pour ne pas créer des creux.
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com