A propos des scripts d'installation
Un script d'installation peut contenir toutes les instructions SQL nécessaires à la création de l'application ou il peut s'agir d'un script maître qui exécute d'autres scripts.
Un script est une série d'instructions SQL dans un fichier dont le nom se termine par .sql (par exemple, create_app.sql). Lorsque vous exécutez un script dans un programme client tel que SQL*Plus ou SQL Developer, les instructions SQL sont exécutées dans l'ordre dans lequel elles apparaissent dans le script. Un script dont les instructions SQL créent une application est appelé script d'installation.
Pour déployer une application, vous exécutez des scripts d'installation dans l'environnement de déploiement. Pour une nouvelle application, vous devez créer les scripts d'installation. Pour une application plus ancienne, les scripts d'installation peuvent exister, mais s'ils ne le sont pas, vous pouvez les créer.
A propos des instructions DDL et des dépendances d'objet de schéma
Un script d'installation contient des instructions LDD qui créent des objets de schéma et, éventuellement, des instructions INSERT qui chargent des données dans des tables créées par des instructions LDD. Pour créer des scripts d'installation correctement et exécuter plusieurs scripts d'installation dans l'ordre approprié, vous devez comprendre les dépendances entre les objets de schéma de votre application.
Si la définition de l'objet A fait référence à l'objet B, A dépend de B. Par conséquent, vous devez créer B avant A. Autrement, l'instruction qui crée B échoue ou elle crée B dans un état non valide, selon le type d'objet.
Pour une application complexe, l'ordre de création des objets est rarement évident. Généralement, vous devez consulter le concepteur de la base de données ou un schéma de la conception.
Voir aussi :
-
Guide de développement Oracle Database, pour plus d'informations sur les dépendances d'objet de schéma
A propos des instructions et des contraintes INSERT
Lorsque vous exécutez un script d'installation qui contient des instructions INSERT, vous devez déterminer si des contraintes peuvent être violées lorsque des données provenant de tables source (dans l'environnement de développement) sont insérées dans de nouvelles tables de l'environnement de déploiement.
Pour chaque table source de votre application, vous devez déterminer si des contraintes peuvent être enfreintes lorsque leurs données seront insérées dans la nouvelle table. Dans ce cas, vous devez désactiver ces contraintes, puis insérer les données et tenter de réactiver les contraintes. Si un élément est en violation d'une contrainte, vous n'êtes pas autorisé à réactiver cette contrainte tant que vous n'avez pas corrigé l'élément de données.
Si vous insérez simplement les données de recherche dans l'ordre approprié (comme dans "Chargement des données"), les contraintes ne sont pas enfreintes. Par conséquent, il n'est pas nécessaire de les désactiver préalablement.
Si vous insérez des données à partir d'une source extérieure (telle qu'un fichier, une feuille de calcul ou une application plus ancienne) ou à partir d'un grand nombre de tables ayant de nombreuses données dépendantes, désactivez les contraintes avant cette opération.
Vous pouvez désactiver et réactiver les contraintes de l'une des manières suivantes :
-
A l'aide de SQL Developer, désactivez et réactivez les contraintes une à une.
-
Dans le cadre Connexions, sélectionnez la table appropriée.
-
Dans le panneau libellé avec le nom de la table, sélectionnez le sous-onglet Contraintes.
-
Dans la liste de toutes les contraintes de la table, remplacez
ENABLEDparDISABLED(ou l'inverse).
-
-
Modifiez le script d'installation, en ajoutant les instructions SQL qui désactivaient et réactivaient chaque contrainte.
-
Créez un script SQL avec des instructions SQL qui désactivent et activent chaque contrainte.
-
Recherchez les contraintes dans le dictionnaire de données d'Oracle Database, puis créez un script SQL avec les instructions SQL pour désactiver et activer chaque contrainte.
Par exemple, pour rechercher et activer les contraintes utilisées dans les tables EVALUATIONS, PERFORMANCE_PARTS et SCORES à partir de Création de tables, entrez ces instructions dans la feuille de calcul :
SELECT 'ALTER TABLE '|| TABLE_NAME || ' DISABLE CONSTRAINT '|| CONSTRAINT_NAME ||';' FROM user_constraints WHERE table_name IN ('EVALUATIONS','PERFORMANCE_PARTS','SCORES'); SELECT 'ALTER TABLE '|| TABLE_NAME || ' ENABLE CONSTRAINT '|| CONSTRAINT_NAME ||';' FROM user_constraints WHERE table_name IN ('EVALUATIONS','PERFORMANCE_PARTS','SCORES');