[8i]contrôle de scripts de création
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 :
Code:
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); |
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à !! :cry:
HELP ! C'est quoi le secret ?? Migrer en Oracle plus récent ? Et sinon ?