Bonjour,
problème tout bête, mais insoluble avec Oracle (enfin, j'ai l'impression pour le moment).
Pour livrer les évolutions de la base, je veux livrer des scripts PL/SQL de mise à jour. Ayant une table de suivi des révisions, je veux la mettre à jour à l'occasion, mais indiquer dedans si j'ai rencontrer un problème (ça parait pas compliqué). Ca donne :
En gros, si je mets des begin / end / transaction, sqlplus me jette sur le premier create rencontré dans le script update_base.sql en disant qu'il ne l'attend pas là !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 -- On trace les modifications de la base INSERT INTO SGO_REVISION (SGR_ID, SGR_VERSION, SGR_REVISION, SGR_STATUT, SGR_COMMENT) VALUES ((select max(sgr_id)+1 from sgo_revision), 'V3', 'V3.0.4', 'EC', 'Evolutions); -- Application des modifications @./impact/update_base.sql; @./functions/nouvelle_fonction.sql; -- il faudrait faire cela qu'en cas de succès mais on ne peut pas -- mettre un begin / exception / end sans qu'Oracle gueule (ou il y a une astuce ?) UPDATE SGO_REVISION SET SGR_STATUT='FI' where SGR_ID = (select max(SGR_ID) from SGO_REVISION);
HELP ! C'est quoi le secret ?? Migrer en Oracle plus récent ? Et sinon ?
Partager