Oracle
 sql >> Base de données >  >> RDS >> Oracle

ALTER &DROP Table DDL avec exécution immédiate dans la base de données Oracle

ALTER &DROP Table DDL

À partir de maintenant, nous avons appris toutes les manières possibles de créer une table directement dans un bloc PL/SQL en utilisant Native Dynamic SQL. Vous pouvez les vérifier dans les deux derniers tutoriels qui sont le tutoriel 82 et le tutoriel 83.

Merci, Dynamic SQL, de nous avoir donné la possibilité d'exécuter des instructions DDL et DML dans notre bloc PL/SQL. Ok, calmez-vous tous les gens de l'âge de pierre ! Je sais que le package DBMS_SQL est toujours là, mais par rapport au SQL dynamique, je le trouve vraiment complexe, sans parler de ses performances médiocres. Quoi qu'il en soit, donc

Qu'apprenons-nous de ce tutoriel ?

Dans ce didacticiel, nous apprendrons à utiliser la table DDL ALTER &DROP avec l'instruction Execute Immediate du SQL dynamique natif. Cela signifie qu'à la fin de ce didacticiel, vous serez capable de modifier et de supprimer dynamiquement un objet de base de données tel qu'une table directement via votre programme PL/SQL.

Pourquoi devrions-nous apprendre cela ?

Certains peuvent trouver le sujet non pertinent, mais ce n'est pas plutôt un sujet très important, en particulier du point de vue de la certification Oracle et de l'entretien. De plus, en tant que développeur, nous devons tous avoir nos principes de base clairs, car vous ne savez jamais quand vous en aurez besoin.

Alors, commençons le tutoriel, au cas où vous auriez encore des questions, n'hésitez pas à leur envoyer un message sur mon Facebook, ici. Voyons d'abord comment modifier une table en utilisant ALTER TABLE avec Execute Immediate of Dynamic SQL.

Comment modifier dynamiquement un tableau ?

Afin de modifier un objet de base de données tel qu'une table, nous utilisons ALTER DDL dans Oracle Database. La modification d'une table à l'aide d'ALTER DDL via SQL est facile par rapport à PL/SQL.

PL/SQL ne prend pas directement en charge les instructions DDL, DML et DQL. Afin d'exécuter les instructions SQL mentionnées, nous devons utiliser le package Dynamic SQL ou DBMS_SQL. Parmi ces deux, Native Dynamic SQL (NDS) est l'option la plus viable en raison de sa simplicité et de ses performances optimisées. Vous pouvez lire les avantages de NDS par rapport au package DBMS_SQL ici.

Ainsi, le moyen le plus simple de modifier dynamiquement un objet de base de données comme une table est d'utiliser le DDL Alter Table avec l'instruction Execute Immediate de Native Dynamic SQL.

Exemple :Alter Table DDL avec l'instruction Execute Immediate.

Pour la démonstration, nous utiliserons la même table que celle que nous avons créée dans le dernier tutoriel. Là, nous avons créé une table avec le nom tut_83 qui avait deux colonnes tut_num de type de données NUMBER et tut_name de type de données varchar 2.

Si vous pratiquez avec moi, vous devez avoir créé cette table dans votre schéma. Si tel est le cas, vous êtes prêt à continuer, sinon visitez le dernier tutoriel et créez ce tableau.

Supposons maintenant que nous voulions ajouter une autre colonne tut_date de type de données date à cette table et cela aussi en utilisant le SQL dynamique natif. Pour ce faire, nous devons utiliser le DDL ALTER TABLE avec l'instruction Execute Immediate.

Étape 1 :Préparez l'instruction DDL.

La meilleure pratique pour écrire un programme Dynamic SQL consiste à préparer votre instruction SQL au préalable.

ALTER TABLE tut_83 ADD tut_date DATE

Voici le DDL ALTER TABLE que nous utiliserons pour l'exécution dynamique. Cette instruction ajoutera la colonne tut_date de type de données DATE à la table tut_83.

Vous pouvez également regarder le didacticiel vidéo pour une démonstration en direct du concept.

Étape 2 :écrivez le programme Native Dynamic SQL.

Une fois que votre instruction DDL est prête, vous êtes prêt à écrire le bloc PL/SQL.

SET SERVEROUTPUT ON;
DECLARE
 ddl_qry VARCHAR2(50);
BEGIN
 ddl_qry := 'ALTER TABLE tut_83
        	 ADD  tut_date DATE';
 EXECUTE IMMEDIATE ddl_qry;
END;
/  

En cas d'exécution réussie, ce programme PL/SQL modifiera la table mentionnée ci-dessus. Vous pouvez vérifier la structure modifiée de votre table en utilisant la commande DESCRIBE, comme ceci

DESCRIBE tut_83;

OU

DESC tut_83;

C'est tout ce que vous avez à faire. C'est ainsi que nous modifions dynamiquement un objet de base de données en utilisant ALTER TABLE DDL avec l'instruction Execute Immediate. Cela conclut également la première partie du didacticiel, passons maintenant à la seconde et apprenons à supprimer une table à l'aide de SQL dynamique natif.

Comment supprimer dynamiquement un tableau ?

Pour supprimer un objet de base de données comme une table, nous utilisons DROP DDL dans Oracle Database. Comme toute autre instruction DDL, celle-ci n'est pas directement prise en charge par le moteur PL/SQL. Et comme d'habitude, nous devons également utiliser Dynamic SQL pour exécuter ce DDL. Voyons comment supprimer une table en utilisant Execute Immediate de Native Dynamic SQL.

Étape 1 :Préparez l'instruction DDL.

Le DDL pour supprimer une table est :

DROP TABLE tut_83

Ce DDL supprimera la table tut_83 du schéma.

Étape 2 :Écrivez le programme PL/SQL pour la table DROP avec Exécuter immédiatement.

SET SERVEROUTPUT ON;
DECLARE
    ddl_qry     VARCHAR2 (100);
BEGIN
    ddl_qry := 'DROP TABLE tut_83';
    EXECUTE IMMEDIATE ddl_qry;
END;
/

Ainsi, l'exécution réussie de ce programme devrait supprimer la table tut_83 que vous pouvez facilement vérifier en utilisant la commande DESCRIBE comme indiqué ci-dessus.

C'est le didacticiel sur la façon de modifier et de supprimer un objet de base de données à l'aide de la table Alter &Drop DDL avec l'instruction Execute Immediate de Native Dynamic SQL dans Oracle Database. J'espère que vous avez aimé le lire et que vous avez appris quelque chose de nouveau. Merci de partager ce blog sur vos réseaux sociaux avec vos amis. Vous pouvez également vous connecter avec moi sur ma page Facebook pour des informations plus intéressantes. Merci et bonne journée !