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
|
--déclarations
...
TYPE CurTyp IS REF CURSOR;
C_Result CurTyp;
rec_Result RESULTAT_PROPA%ROWTYPE; --possibilité d'écrire un ROWTYPE manuellement (personnalisé) ?
...
--génération de la requête
L_Requete := 'select '||L_Nom_liste||' ordre, '||rec_Info.code||' val from '
||L_Nom_table|| ' where DOSID = '||P_DOSID||
' and DPRVERSION = '''||P_VERSION||''' order by'||L_Nom_liste;
-- exécution de la requête
OPEN C_Result FOR L_Requete;
LOOP
FETCH C_Result INTO rec_Result;
EXIT WHEN C_Result%NOTFOUND;
if rec_Info.type = 'DATE' then
INSERT INTO RESULTAT_PROPA (REQID, DOSID, DPRVERSION,
CODE_CLIENT, BLOC, VALEUR, VALEUR_LISTE)
VALUES (P_REQID, P_DOSID, P_VERSION,
rec_Info.codeclient, rec_Bloc.bloc,
to_char(rec_Result.val, 'DD/MM/YYYY'), rec_Result.ordre);
else
INSERT INTO RESULTAT_PROPA (REQID, DOSID,
DPRVERSION, CODE_CLIENT, BLOC, VALEUR,
VALEUR_LISTE)
VALUES (P_REQID, P_DOSID, P_VERSION,
rec_Info.codeclient, rec_Bloc.bloc, to_char(rec_Result.val),
rec_Result.ordre);
end if;
END LOOP;
CLOSE C_Result; |