sql >> Database teknologi >  >> RDS >> Oracle

ALTER &DROP Tabel DDL med Execute Immediate i Oracle Database

ÆNDRING OG SLIP Tabel DDL

Fra nu af har vi lært alle de mulige måder at skabe en tabel lige inde i en PL/SQL-blok ved hjælp af Native Dynamic SQL. Du kan tjekke dem i de sidste to selvstudier, som er selvstudie 82 og selvstudie 83.

Tak, Dynamic SQL for at give os kraften til at udføre DDL- og DML-sætninger i vores PL/SQL-blok. Okay, rolig alle jer stenaldermennesker! Jeg ved, at DBMS_SQL-pakken stadig er der, men i forhold til dynamisk SQL finder jeg den virkelig kompleks, for ikke at nævne dens træge ydeevne. Anyway, så

Hvad lærer vi af dette selvstudie?

I denne øvelse lærer vi, hvordan du bruger ALTER &DROP-tabellen DDL med Execute Immediate-sætning af Native dynamisk SQL. Det betyder, at du ved slutningen af ​​denne øvelse vil være i stand til dynamisk at ændre og slette et databaseobjekt såsom en tabel direkte gennem dit PL/SQL-program.

Hvorfor skal vi lære det?

Nogle vil måske finde emnet irrelevant, men det er ikke snarere, det er et meget vigtigt emne, især fra Oracle-certificerings- og interviewperspektiv. Som udvikler skal vi alle have vores grundlæggende klarhed, fordi du aldrig ved, hvornår du får brug for det.

Så lad os starte selvstudiet, hvis du stadig har spørgsmål, er du velkommen til at sende dem en besked på min Facebook her. Lad os først lære, hvordan man ændrer en tabel ved hjælp af ALTER TABLE med Execute Immediate of Dynamic SQL.

Hvordan ændres en tabel dynamisk?

For at ændre et databaseobjekt, såsom en tabel, bruger vi ALTER DDL i Oracle Database. Ændring af en tabel ved hjælp af ALTER DDL gennem SQL er let sammenlignet med PL/SQL.

PL/SQL understøtter ikke DDL-, DML- og DQL-sætninger direkte. For at udføre de nævnte SQL-sætninger skal vi enten bruge Dynamic SQL eller DBMS_SQL-pakken. Blandt disse to er Native Dynamic SQL (NDS) den mest levedygtige mulighed på grund af dens enkelhed og optimerede ydeevne. Du kan læse fordelene ved NDS frem for DBMS_SQL-pakken her.

Så den enkleste måde at dynamisk ændre et databaseobjekt som en tabel på er at bruge Alter Table DDL med Execute Immediate-sætning af Native Dynamic SQL.

Eksempel:Ændre tabel DDL med Execute Immediate-erklæring.

Til demonstrationen vil vi bruge den samme tabel, som vi lavede i den sidste vejledning. Der oprettede vi en tabel med navnet tut_83, der havde to kolonner tut_num med NUMBER datatype og tut_name af varchar 2 datatype.

Hvis du øver med mig, skal du have den tabel oprettet i dit skema. Hvis det er tilfældet, så er du klar til at gå ellers besøge den sidste tutorial og oprette den tabel.

Lad os nu sige, at vi ønsker at tilføje en anden kolonne tut_date of date datatype til denne tabel, og det også ved hjælp af indbygget dynamisk SQL. For at gøre det skal vi bruge ALTER TABLE DDL med Execute Immediate-sætning.

Trin 1:Forbered DDL-sætningen.

Den bedste praksis til at skrive et dynamisk SQL-program er at forberede din SQL-sætning på forhånd.

ALTER TABLE tut_83 ADD tut_date DATE

Her er ALTER TABLE DDL, som vi vil bruge til dynamisk udførelse. Denne erklæring tilføjer kolonnen tut_date af datatypen DATE til tabellen tut_83.

Du kan også se videovejledningen til live demonstration af konceptet.

Trin 2:Skriv programmet Native Dynamic SQL.

Når du har din DDL-sætning klar, er du klar til at skrive PL/SQL-blokken.

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

Ved vellykket udførelse vil dette PL/SQL-program ændre ovennævnte tabel. Du kan kontrollere den ændrede struktur i din tabel ved at bruge kommandoen DESCRIBE, som denne

DESCRIBE tut_83;

ELLER

DESC tut_83;

Det er alt, du skal gøre. Det er sådan, vi ændrer et databaseobjekt dynamisk ved hjælp af ALTER TABLE DDL med Execute Immediate-sætning. Det afslutter også den første del af selvstudiet, lad os nu gå videre til den anden og lære, hvordan man sletter en tabel ved hjælp af indbygget dynamisk SQL.

Hvordan sletter man en tabel dynamisk?

For at slette et databaseobjekt som en tabel bruger vi DROP DDL i Oracle Database. Som enhver anden DDL-sætning understøttes denne heller ikke direkte af PL/SQL-motoren. Og som sædvanlig skal vi bruge Dynamic SQL til også at køre denne DDL. Lad os se, hvordan du sletter en tabel ved hjælp af Execute Immediate of Native Dynamic SQL.

Trin 1:Forbered DDL-sætningen.

DDL for sletning af en tabel er:

DROP TABLE tut_83

Denne DDL vil slette tabellen tut_83 fra skemaet.

Trin 2:Skriv PL/SQL-programmet til DROP-tabellen med Execute Immediate.

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

Så vellykket eksekvering af dette program bør droppe tabellen tut_83, som du nemt kan kontrollere ved at bruge DESCRIBE-kommandoen som vist ovenfor.

Det er selvstudiet om, hvordan man ændrer og sletter et databaseobjekt ved hjælp af Alter &Drop-tabellen DDL med Execute Immediate-sætning af Native Dynamic SQL i Oracle Database. Håber du nød at læse den og lærte noget nyt. Del venligst denne blog på dine sociale medier med dine venner. Du kan også kontakte mig på min Facebook-side for mere interessant indsigt. Tak og god dag!


  1. phpMyAdmin kaster en #2002 kan ikke logge ind på mysql serveren phpmyadmin

  2. Indsættelse af et Python datetime.datetime-objekt i MySQL

  3. SQL Sub-forespørgsler i check-begrænsning

  4. Sådan tilføjes en logfil til en SQL Server-database (T-SQL)