Sélectionner une page

Script pl/sql transactionnel/safe

De Vincent Chabanis Technique

Voila un script qui vous permettra de faire de l’insert/update de masse, sans craindre de casser toute la prod. Si la moindre erreur survient, tout le script est annulé, et une exception est levée.


Attention : ce script ne fonctionne pas pour les instructions ALTER TABLE et CREATE, puisqu’elles mettent fin a la transaction en cours.


DECLARE — si jamais vous avez des variables a declarer my_var INTEGER; BEGIN SAVEPOINT A; — votre script commence ici SELECT count(*) INTO my_var FROM some_data_table; INSERT INTO statistic_table (id, data_count) VALUES (sequence.nextval, my_var); — et fini ici COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK TO SAVEPOINT A; COMMIT RAISE; END;
Agence digitale iMDEO