1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| CREATE OR REPLACE PROCEDURE get_residence IS
v_idres number(1);
v_number_of_lines number(30);
CURSOR RESIDENCE_CUR IS
SELECT IDTIER,IDRESIDENCE
FROM TIER
WHERE IDRESIDENCE IS NULL AND TYPEPERSONNE = 'PP';
BEGIN
FOR RESIDENCE_REC IN RESIDENCE_CUR
LOOP
IF RESIDENCE_REC.IDRESIDENCE IS NULL THEN v_idres := 1;
ELSE v_idres := 0;
END IF;
SELECT COUNT(*) INTO v_number_of_lines
FROM NFIABILISATION
WHERE IDTIER=RESIDENCE_REC.IDTIER;
IF v_number_of_lines !=0 THEN
UPDATE NFIABILISATION SET RESIDENCE=v_idres
WHERE IDTIER=RESIDENCE_REC.IDTIER;
ELSE
INSERT INTO nfiabilisation
(IDTIERAFIAB,idtier,residence,TYPEPERSONNE)
VALUES (nfiabilisation_seq.NEXTVAL,residence_rec.idtier,v_idres,'PP');
END IF;
EXIT WHEN RESIDENCE_CUR%NOTFOUND;
END LOOP;
commit;
END get_residence;
/ |
Partager