Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ALTER &DROP-Tabellen-DDL mit sofortiger Ausführung in Oracle-Datenbank

ALTER &DROP-Tabellen-DDL

Bis jetzt haben wir alle Möglichkeiten kennengelernt, eine Tabelle direkt innerhalb eines PL/SQL-Blocks mit nativem dynamischem SQL zu erstellen. Sie können sie in den letzten beiden Tutorials, Tutorial 82 und Tutorial 83, überprüfen.

Vielen Dank, Dynamic SQL, dass Sie uns die Möglichkeit gegeben haben, DDL- und DML-Anweisungen in unserem PL/SQL-Block auszuführen. Ok, beruhigt euch alle Steinzeitmenschen! Ich weiß, dass das DBMS_SQL-Paket noch vorhanden ist, aber im Vergleich zu dynamischem SQL finde ich es sehr komplex, ganz zu schweigen von seiner trägen Leistung. Wie auch immer, also

Was lernen wir aus diesem Tutorial?

In diesem Lernprogramm erfahren Sie, wie Sie die ALTER &DROP-Tabellen-DDL mit der Execute Immediate-Anweisung von Native Dynamic SQL verwenden. Das bedeutet, dass Sie am Ende dieses Tutorials in der Lage sein werden, ein Datenbankobjekt wie eine Tabelle direkt über Ihr PL/SQL-Programm dynamisch zu ändern und zu löschen.

Warum sollten wir das lernen?

Einige finden das Thema vielleicht irrelevant, aber es ist nicht vielmehr ein sehr wichtiges Thema, insbesondere aus der Perspektive der Oracle-Zertifizierung und des Interviews. Als Entwickler müssen wir alle unsere Grundlagen klar haben, weil man nie weiß, wann man sie braucht.

Beginnen wir also mit dem Tutorial. Falls Sie noch Fragen haben, können Sie sie hier auf meiner Facebook-Seite senden. Lassen Sie uns zuerst lernen, wie man eine Tabelle mit ALTER TABLE mit Execute Immediate of Dynamic SQL ändert.

Wie ändere ich eine Tabelle dynamisch?

Um ein Datenbankobjekt wie eine Tabelle zu ändern, verwenden wir ALTER DDL in Oracle Database. Das Ändern einer Tabelle mit ALTER DDL über SQL ist im Vergleich zu PL/SQL einfach.

PL/SQL unterstützt DDL-, DML- und DQL-Anweisungen nicht direkt. Um die genannten SQL-Anweisungen auszuführen, müssen wir entweder Dynamic SQL oder das DBMS_SQL-Paket verwenden. Unter diesen beiden ist Native Dynamic SQL (NDS) aufgrund seiner Einfachheit und optimierten Leistung die praktikabelste Option. Die Vorteile von NDS gegenüber dem DBMS_SQL-Paket können Sie hier nachlesen.

Die einfachste Möglichkeit, ein Datenbankobjekt wie eine Tabelle dynamisch zu ändern, besteht also darin, die Alter Table DDL mit der Execute Immediate-Anweisung von Native Dynamic SQL zu verwenden.

Beispiel:Alter Table DDL mit Execute Immediate-Anweisung.

Für die Demonstration verwenden wir dieselbe Tabelle, die wir im letzten Tutorial erstellt haben. Dort haben wir eine Tabelle mit dem Namen tut_83 erstellt, die zwei Spalten tut_num vom Datentyp NUMBER und tut_name vom Datentyp varchar 2 hatte.

Wenn Sie mit mir üben, müssen Sie diese Tabelle in Ihrem Schema erstellen lassen. Wenn dem so ist, können Sie loslegen, andernfalls besuchen Sie das letzte Tutorial und erstellen diese Tabelle.

Nehmen wir nun an, wir möchten dieser Tabelle eine weitere Spalte tut_date des Datumsdatentyps hinzufügen, und zwar unter Verwendung von nativem dynamischem SQL. Dazu müssen wir die ALTER TABLE DDL mit der Execute Immediate-Anweisung verwenden.

Schritt 1:Bereiten Sie die DDL-Anweisung vor.

Die beste Methode zum Schreiben eines dynamischen SQL-Programms besteht darin, Ihre SQL-Anweisung im Voraus vorzubereiten.

ALTER TABLE tut_83 ADD tut_date DATE

Hier ist die ALTER TABLE DDL, die wir für die dynamische Ausführung verwenden werden. Diese Anweisung fügt der Tabelle tut_83.

die Spalte tut_date vom Datentyp DATE hinzu

Sie können sich auch das Video-Tutorial zur Live-Demonstration des Konzepts ansehen.

Schritt 2:Schreiben Sie das native dynamische SQL-Programm.

Sobald Sie Ihre DDL-Anweisung fertig haben, können Sie den PL/SQL-Block schreiben.

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

Bei erfolgreicher Ausführung ändert dieses PL/SQL-Programm die oben genannte Tabelle. Sie können die geänderte Struktur Ihrer Tabelle überprüfen, indem Sie den DESCRIBE-Befehl wie diesen verwenden

DESCRIBE tut_83;

ODER

DESC tut_83;

Das ist alles, was Sie tun müssen. Auf diese Weise ändern wir ein Datenbankobjekt dynamisch mithilfe von ALTER TABLE DDL mit der Execute Immediate-Anweisung. Damit ist auch der erste Teil des Tutorials abgeschlossen. Fahren wir nun mit dem zweiten fort und lernen, wie man eine Tabelle mit nativem dynamischem SQL löscht.

Wie lösche ich eine Tabelle dynamisch?

Um ein Datenbankobjekt wie eine Tabelle zu löschen, verwenden wir DROP DDL in Oracle Database. Wie jede andere DDL-Anweisung wird auch diese nicht direkt von der PL/SQL-Engine unterstützt. Und wie üblich müssen wir auch Dynamic SQL verwenden, um diese DDL auszuführen. Sehen wir uns an, wie man eine Tabelle mit Execute Immediate of Native Dynamic SQL löscht.

Schritt 1:Bereiten Sie die DDL-Anweisung vor.

Die DDL zum Löschen einer Tabelle lautet:

DROP TABLE tut_83

Diese DDL löscht die Tabelle tut_83 aus dem Schema.

Schritt 2:Schreiben Sie das PL/SQL-Programm für die DROP-Tabelle mit Execute Immediate.

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

Die erfolgreiche Ausführung dieses Programms sollte also die Tabelle tut_83 löschen, die Sie leicht mit dem DESCRIBE-Befehl wie oben gezeigt überprüfen können.

Dies ist das Tutorial zum Ändern und Löschen eines Datenbankobjekts mit der Alter &Drop-Tabellen-DDL mit der Execute Immediate-Anweisung von Native Dynamic SQL in Oracle Database. Ich hoffe, Sie haben es genossen, es zu lesen und etwas Neues gelernt. Bitte teilen Sie diesen Blog in Ihren sozialen Medien mit Ihren Freunden. Sie können sich auch auf meiner Facebook-Seite mit mir in Verbindung setzen, um weitere interessante Einblicke zu erhalten. Vielen Dank und einen schönen Tag!