À propos des scripts d'installation
Un script d'installation peut avoir tous les énoncés SQL nécessaires pour créer l'application ou il peut s'agir d'un script principal qui exécute d'autres scripts.
Un script est une série d'énoncés 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 s'exécutent dans l'ordre dans lequel elles apparaissent dans le script. Un script dont les énoncés SQL créent une application est appelé script d'installation.
Pour déployer une application, vous exécutez un ou plusieurs 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 si ce n'est pas le cas, vous pouvez les créer.
À propos des énoncés LDD 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 les tables créées par les instructions LDD. Pour créer correctement des scripts d'installation et exécuter plusieurs scripts d'installation dans le bon ordre, 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, alors A dépend de B. Par conséquent, vous devez créer B avant de créer A. Sinon, l'instruction qui crée B échoue ou 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. Habituellement, vous devez consulter le concepteur de base de données ou un diagramme de la conception.
Voir aussi :
-
Guide de développement d'Oracle Database pour plus d'informations sur les dépendances d'objet de schéma
-
"À propos des énoncés LDD (Langage de définition de données)"
À propos des instructions INSERT et des contraintes
Lorsque vous exécutez un script d'installation contenant des instructions INSERT, vous devez déterminer si des contraintes peuvent être violées lorsque des données provenant de tables sources (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 violées lors de l'insertion de leurs données dans la nouvelle table. Si tel est le cas, vous devez d'abord désactiver ces contraintes, puis insérer les données, puis essayer de réactiver les contraintes. Si un élément de données enfreint une contrainte, vous ne pouvez pas réactiver cette contrainte tant que vous n'avez pas corrigé l'élément de données.
Si vous insérez simplement des données de consultation dans un ordre correct (comme dans "Chargement des données"), les contraintes ne sont pas violées. Par conséquent, vous n'avez pas besoin de les désactiver en premier.
Si vous insérez des données à partir d'une source externe (comme un fichier, une feuille de calcul ou une ancienne application) ou de nombreuses tables qui ont des données dépendantes, désactivez les contraintes avant d'insérer les données.
Vous pouvez désactiver et réactiver les contraintes comme suit :
-
À l'aide de SQL Developer, désactivez et réactivez les contraintes une par une.
-
Dans le cadre Connections, sélectionnez la table appropriée.
-
Dans le volet étiqueté 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 des instructions SQL qui désactivent et réactivent 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 Oracle Database et 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 énoncés 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');Voir aussi :