Si je déploie des packages N pl/sql dans Oracle DB, puis-je effectuer une compilation atomique, c'est-à-dire que les modifications de ces packages seront appliquées après la compilation réussie de tous les packages?La compilation de plusieurs paquets Oracle Pl/SQL peut-elle être une opération atomique?
Répondre
Comme les packages sont éditables, vous pouvez consulter edition-based redefintion. Cela vous donnerait un moyen de basculer de façon atomique entre les versions de vos paquets.
CREATE OR REPLACE et ALTER PACKAGE sont des instructions DDL, et chaque instruction DDL unique est une transaction discrète. Un COMMIT est émis avant et après chaque commande DDL; c'est pourquoi il n'y a pas de retour en arrière pour DDL.
Il me semble que vous avez un problème de gestion de la configuration. Et la gestion de la configuration, plus le contrôle de la source, est le moyen de le réparer. Gardez tous vos scripts PL/SQL (diable, juste tous vos scripts) sous contrôle de version. Lorsque vous déployez une nouvelle version de certains programmes PL/SQL, vérifiez aussi les versions précédentes (dans un sous-répertoire séparé, ou tout ce qui est logique dans votre régime de déploiement). Ensuite, s'il y a des problèmes avec les nouvelles versions de vos paquets, il est facile de redéployer les anciennes versions.
Les autres réponses ici sont bonnes (par exemple redéfinition basée sur l'édition, qui est disponible dans 11gR2).
Une autre option est fournie par PL/SQL Developer, qui peut être configurée pour effectuer une compilation de test (compile un package avec un autre nom) avant la compilation "réelle".
D'accord, semble un environnement de test serait une bonne idée! –
Certes, mais le problème est, les environnements sont comme des fonds de couverture. Tout simplement parce que quelque chose déployé dans Test ne garantit pas qu'il le fera en production. – APC