Erreur lors d'éxécution de plusieurs DELETE
Bonjour,
J'ai un probème, je me suis créé un package avec plusieurs fonctions qui servent à purger des bases de données.
LE code marche trés bien mais j'ai un problème lors de l'éxécution. ça me renvoie une erreur. (pas de souci sur des petits échantillons)
En effet, pendant ma 1ére fonction je fais un delete pour 1 million de lignes environ sur 4 tables différentes et je fais le commit à la fin des 4 delete car si on a une erreur lors du 4éme delete on doit faire un rollback pour les 4 tables. Malheureusement, ça me renvoie une erreur au bout d'1h30 de traitement à cause de l'espace temporaire disponible...
Exemple d'un des 4 delete
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| BEGIN
DELETE FROM TABLE_PURGE
WHERE ID IN (SELECT ID FROM tmp_id);
nbPurge := SQL%ROWCOUNT;
EXCEPTION
WHEN OTHERS THEN
outMsgErr := ' ERREUR - DELETE: KO';
ROLLBACK;
LogErreur (NOM_TABLE_PURGE, outMsgErr);
RETURN -1;
END; |
Avez-vous une solution optimisé à ce pb? Est-il possible de faire des boucles sur un delete en prenant X valeurs?
Merci d'avance de votre aide car je suis un peu bloqué...