problème procédure oracle
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:
NO_ADH - DT_NAISS - NORNGA
1000 - 30/05/1950 - 1
1000 - 14/6/1974 - null
1000 - 7/6/ 1942 - null
1000 - 1/10/1980 -null
2000 -4/4/1973 -1
2000 -7/6/1974 - null
2000 -7/9/1977 - null
devienne après la proc
NO_ADH - DT_NAISS - NORNGA
1000 - 30/05/1950 - 1
1000 - 14/6/1974 - 2
1000 - 7/6/ 1942 - 3
1000 - 1/10/1980 -4
2000 -4/4/1973 -1
2000 -7/6/1974 - 2
2000 -7/9/1977 - 3
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| create or replace procedure UPDATE_NORNGA is
P_NUM_ADH Varchar2(15);
i integer (2);
c integer (2);
DECLARE
cursor C_NO_ADH is
select NO_ADh from garantie
BEGIN
c:= select count(dt_naiss) from tfp_ech_garantie where no_adh=P_NUM_ADH
i:= 2
j:= i+1
for i to c
LOOP
UPDATE GARANTIE
set NORNGA = j
where no_adh=P_NUM_ADH
and DT_NAISS is null;
END UPDATE_NORNGA; |
Merci à vous :)