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

ALTER &DROP Table DDL con esecuzione immediata nel database Oracle

DDL tabella ALTER &DROP

A partire da ora, abbiamo appreso tutti i modi possibili per creare una tabella direttamente all'interno di un blocco PL/SQL utilizzando Native Dynamic SQL. Puoi verificarli negli ultimi due tutorial che sono il tutorial 82 e il tutorial 83.

Grazie, Dynamic SQL per averci dato il potere di eseguire istruzioni DDL e DML nel nostro blocco PL/SQL. Ok, calmate tutti voi gente dell'età della pietra! So che il pacchetto DBMS_SQL è ancora lì, ma rispetto all'SQL dinamico lo trovo davvero complesso, per non parlare delle sue prestazioni lente. Comunque, così

Cosa stiamo imparando da questo tutorial?

In questo tutorial impareremo come utilizzare la tabella DDL ALTER &DROP con l'istruzione Execute Immediate di SQL dinamico nativo. Significa che alla fine di questo tutorial sarai in grado di modificare ed eliminare dinamicamente un oggetto di database come una tabella direttamente attraverso il tuo programma PL/SQL.

Perché dovremmo impararlo?

Alcuni potrebbero trovare l'argomento irrilevante, ma non è piuttosto un argomento molto importante soprattutto dal punto di vista della certificazione Oracle e dell'intervista. Inoltre, essendo uno sviluppatore, tutti dobbiamo avere chiari i nostri fondamenti perché non sai mai quando ne avrai bisogno.

Quindi, iniziamo il tutorial, se hai ancora domande sentiti libero di inviarle un messaggio sul mio Facebook, qui. Impariamo prima come modificare una tabella usando ALTER TABLE con Execute Immediate of Dynamic SQL.

Come modificare dinamicamente una tabella?

Per modificare un oggetto di database come una tabella utilizziamo ALTER DDL in Oracle Database. La modifica di una tabella utilizzando ALTER DDL tramite SQL è facile rispetto a PL/SQL.

PL/SQL non supporta direttamente le istruzioni DDL, DML e DQL. Per eseguire le istruzioni SQL menzionate, è necessario utilizzare il pacchetto Dynamic SQL o DBMS_SQL. Tra questi due, Native Dynamic SQL (NDS) è l'opzione più praticabile grazie alla sua semplicità e alle prestazioni ottimizzate. Puoi leggere i vantaggi di NDS rispetto al pacchetto DBMS_SQL qui.

Quindi, il modo più semplice per modificare dinamicamente un oggetto di database come una tabella è utilizzare il DDL Alter Table con l'istruzione Execute Immediate di Native Dynamic SQL.

Esempio:Alter Table DDL con Esegui istruzione immediata.

Per la dimostrazione utilizzeremo la stessa tabella che abbiamo creato nell'ultimo tutorial. Lì abbiamo creato una tabella con il nome tut_83 che aveva due colonne tut_num di tipo di dati NUMBER e tut_name di tipo di dati varchar 2.

Se ti stai esercitando con me, devi avere quella tabella creata nel tuo schema. Se è così, allora sei pronto per andare altrimenti visita l'ultimo tutorial e crea quella tabella.

Ora supponiamo di voler aggiungere un'altra colonna tut_date of date datatype a questa tabella e anche quella usando l'SQL dinamico nativo. Per fare ciò dobbiamo usare ALTER TABLE DDL con l'istruzione Execute Immediate.

Passaggio 1:prepara la dichiarazione DDL.

La procedura migliore per scrivere un programma SQL dinamico è preparare in anticipo l'istruzione SQL.

ALTER TABLE tut_83 ADD tut_date DATE

Ecco l'ALTER TABLE DDL che useremo per l'esecuzione dinamica. Questa istruzione aggiungerà la colonna tut_date del tipo di dati DATE alla tabella tut_83.

Puoi anche guardare il video tutorial per la dimostrazione dal vivo del concetto.

Passaggio 2:scrivi il programma SQL dinamico nativo.

Una volta che hai la tua istruzione DDL pronta, sei pronto per scrivere il blocco 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;
/  

Al termine dell'esecuzione, questo programma PL/SQL modificherà la tabella sopra menzionata. Puoi controllare la struttura modificata della tua tabella usando il comando DESCRIBE, come questo

DESCRIBE tut_83;

O

DESC tut_83;

Questo è tutto ciò che devi fare. È così che modifichiamo un oggetto di database in modo dinamico utilizzando ALTER TABLE DDL con l'istruzione Execute Immediate. Questo conclude anche la prima parte del tutorial ora passiamo alla seconda e impariamo come eliminare una tabella utilizzando l'SQL dinamico nativo.

Come eliminare dinamicamente una tabella?

Per eliminare un oggetto di database come una tabella utilizziamo DROP DDL in Oracle Database. Come qualsiasi altra istruzione DDL, anche questa non è supportata direttamente dal motore PL/SQL. E come al solito abbiamo bisogno di usare Dynamic SQL anche per eseguire questo DDL. Vediamo come eliminare una tabella utilizzando Execute Immediate of Native Dynamic SQL.

Passaggio 1:prepara la dichiarazione DDL.

Il DDL per l'eliminazione di una tabella è:

DROP TABLE tut_83

Questo DDL eliminerà la tabella tut_83 dallo schema.

Passaggio 2:scrivi il programma PL/SQL per la tabella DROP con Esegui Immediato.

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

Quindi l'esecuzione riuscita di questo programma dovrebbe far cadere la tabella tut_83 che puoi facilmente controllare usando il comando DESCRIBE come mostrato sopra.

Questo è il tutorial su come modificare ed eliminare un oggetto di database utilizzando Alter &Drop table DDL con l'istruzione Execute Immediate di Native Dynamic SQL in Oracle Database. Spero che ti sia piaciuto leggerlo e che tu abbia imparato qualcosa di nuovo. Per favore, condividi questo blog sui tuoi social media con i tuoi amici. Puoi anche connetterti con me sulla mia Pagina Facebook per approfondimenti più interessanti. Grazie e buona giornata!