optimiser update dynamique
voila je suis sur oralce 10g / linux
je fais un update dynamique qui fonctionne correctement , mais je voulais juste vérifier s'il ya pas d'autre solution pour ne pas faire 2 fois lappel de la meme focntion de check voila le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| open CUR for 'select rowid,nom,prenom, from client where classe = 100 ';
BEGIN
requete := 'UPDATE client
set flag = DECODE(:1,0,0,1),
nb_ligne = :1
WHERE ROWID = :2';
--OPEN CUR;
LOOP
FETCH CUR BULK COLLECT INTO lt_ROWID,lt_Nom,lt_prenom LIMIT 1000;
FOR J IN NVL(lt_ROWID.FIRST, 0) .. NVL(lt_ROWID.LAST, -1) LOOP
execute immediate requete USING VALID_Client(),VALID_Client(), lt_ROWID(J);
END LOOP;
commit;
EXIT WHEN CUR%NOTFOUND;
END LOOP;
CLOSE CUR;
EXCEPTION WHEN OTHERS THEN
po_LIBERR := 'client invalide: '||SQLCODE||' : '||sqlerrm;
end; |
dans ma requête d'update je fais l'appel de l'argument :1 2 fois et j ai vu que ça fonctionné que si je metté la fonction correspondante 2 fois du coups lors de l'exécution la même fonction est exécuter 2 fois pour chaque appel (perte de temps) . je voualis donc savoir si ya pas moyen de l'exécuter une seul fois merci