|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 4 ![]() |
Bonjour à tous,
voilà je viens de commencer sur le PL/SQL et j'ai un souci avec la proc ci-dessous. Pour simplifier j'ai une table GARANTIE qui a 3 champs : No_ADH numéro d'adhérent, DT_NAISS date de naissance et NORNGA (rang de naissance mais peu importe l'ordre) Je voudrais que pour chaque numéro d'adhérent, la procédure update le champ NORNGA vide de ma table GARANTIE et lui mette 2, puis 3 et 4... pour chaque ligne avec date de naissance. Puis pour un nouveau numéro d'adhérent, le NORNGA se remet à 2, puis 3 etc.... On a donc un num adhérent, une date de naissance et un num de rang null Citation:
Code :
|
|||
|
|
00
|
|
|
#2 | |||||||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Salut,
A priori pas besoin de PL/SQL sutout si c'est du one shot, sinon tu peux créer une procédure autour de la requête. Par contre je ne comprends pas bien : Citation:
Mais, comme tu sembles avoir déjà des lignes où NORNGA est à 1 pour chaque NO_ADH, je te propose une requête qui n'updatera que les NULLs en laissant à 1 ceux qui sont déjà renseignés même s'ils ont une dt_naiss inférieure. Tu peux utiliser MERGE - je pars du principe que le couple (no_adh,dt_naiss) est unique mais si tu as une PK utilise la dans le SELECT du USING et dans le ON - donc : Code :
Code :
Je suis presque sûr qu'il est possible d'écrire juste un UPDATE mais je ne me souviens plus de la syntaxe... Si une âme charitable peut me rafraichir la mémoire, ce sera avec plaisir. Je laisse le CTAS pour plus de facilité : Code :
|
|||||||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 4 ![]() |
Salut skuatamad
je te remercie pour ta réponse je vais tester ça demain et je te tiens au courant. Thanks |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 4 ![]() |
Hélas ça ne parche pas.
J'ai un message "missing keyword" à la fin du code, même en ayant rajouté un ";" à la fin ? Ce serait parce que je suis en oracle v9 ? Merci d'avance |
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Oui je pense que le MISSING Key Words viens de l'absence du NOT MATCHED en 9i.
Bon j'ai trouvé une syntaxe qui devrait passer sur une 9i, mais que je l'ai testé sur une 11G alors ça n'est peut être toujours pas bon : Code :
Si tu as une PK autre utilise la. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com