sql >> Databáze >  >> RDS >> Oracle

ALTER &DROP Table DDL s okamžitým spuštěním v databázi Oracle

ALTER &DROP Table DDL

Od této chvíle jsme se naučili všechny možné způsoby vytváření tabulky přímo v bloku PL/SQL pomocí nativního dynamického SQL. Můžete si je zkontrolovat v posledních dvou výukových programech, kterými jsou výukový program 82 a výukový program 83.

Díky, Dynamic SQL za to, že nám dal sílu spouštět příkazy DDL a DML v našem bloku PL/SQL. Dobře, uklidněte se všichni lidé z doby kamenné! Vím, že balíček DBMS_SQL stále existuje, ale ve srovnání s dynamickým SQL mi přijde opravdu složitý, nemluvě o jeho pomalém výkonu. Každopádně, tak

Co se z tohoto výukového programu učíme?

V tomto tutoriálu se naučíme, jak používat tabulku ALTER &DROP DDL s příkazem Execute Immediate nativního dynamického SQL. To znamená, že na konci tohoto tutoriálu budete schopni dynamicky upravovat a mazat databázový objekt, jako je tabulka, přímo prostřednictvím vašeho PL/SQL programu.

Proč bychom se to měli učit?

Někomu může toto téma připadat irelevantní, ale není to spíše velmi důležité téma, zejména z pohledu Oracle Certification and Interview. Jako vývojář musíme mít všichni jasné své základy, protože nikdy nevíte, kdy to budete potřebovat.

Začněme tedy s výukovým programem, v případě, že máte ještě nějaké dotazy, neváhejte je napsat na můj Facebook, zde. Nejprve se naučíme, jak upravit tabulku pomocí ALTER TABLE s Execute Immediate of Dynamic SQL.

Jak dynamicky upravit tabulku?

Aby bylo možné upravit databázový objekt, jako je tabulka, používáme ALTER DDL v databázi Oracle. Úprava tabulky pomocí ALTER DDL prostřednictvím SQL je ve srovnání s PL/SQL snadná.

PL/SQL nepodporuje přímo příkazy DDL, DML a DQL. Abychom mohli spouštět zmíněné SQL příkazy, potřebujeme buď použít Dynamic SQL nebo DBMS_SQL balíček. Mezi těmito dvěma je NDS (Native Dynamic SQL) nejschůdnější možností díky své jednoduchosti a optimalizovanému výkonu. Výhody NDS oproti balíčku DBMS_SQL si můžete přečíst zde.

Nejjednodušší způsob, jak dynamicky upravovat databázový objekt, jako je tabulka, je použít Alter Table DDL s příkazem Execute Immediate nativního dynamického SQL.

Příklad:Změňte tabulku DDL pomocí příkazu Execute Immediate.

Pro demonstraci použijeme stejnou tabulku, jakou jsme vytvořili v minulém tutoriálu. Tam jsme vytvořili tabulku s názvem tut_83, která měla dva sloupce tut_num datového typu NUMBER a tut_name datového typu varchar 2.

Pokud se mnou cvičíte, musíte mít tuto tabulku vytvořenou ve svém schématu. Pokud je tomu tak, pak jste připraveni jít jinak navštívit poslední tutoriál a vytvořit tuto tabulku.

Nyní řekněme, že chceme do této tabulky přidat další sloupec tut_date datového typu data a také pomocí nativního dynamického SQL. Abychom toho dosáhli, musíme použít ALTER TABLE DDL s příkazem Execute Immediate.

Krok 1:Připravte výpis DDL.

Nejlepším postupem pro psaní programu Dynamic SQL je připravit si příkaz SQL předem.

ALTER TABLE tut_83 ADD tut_date DATE

Zde je ALTER TABLE DDL, kterou budeme používat pro dynamické provádění. Tento příkaz přidá sloupec tut_date datového typu DATE do tabulky tut_83.

Můžete se také podívat na video tutoriál pro živou ukázku konceptu.

Krok 2:Napište program Native Dynamic SQL.

Jakmile budete mít svůj příkaz DDL připraven, jste připraveni napsat blok 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;
/  

Po úspěšném spuštění tento PL/SQL program upraví výše zmíněnou tabulku. Upravenou strukturu tabulky můžete zkontrolovat pomocí příkazu DESCRIBE, jako je tento

DESCRIBE tut_83;

NEBO

DESC tut_83;

To je vše, co musíte udělat. Takto dynamicky upravujeme databázový objekt pomocí ALTER TABLE DDL s příkazem Execute Immediate. Tím také končí první část výukového programu, nyní přejdeme k druhé a naučíme se, jak odstranit tabulku pomocí nativního dynamického SQL.

Jak dynamicky odstranit tabulku?

Chcete-li odstranit databázový objekt, jako je tabulka, používáme DROP DDL v databázi Oracle. Stejně jako jakýkoli jiný příkaz DDL ani tento není přímo podporován jádrem PL/SQL. A jako obvykle potřebujeme ke spuštění tohoto DDL také použít Dynamic SQL. Podívejme se, jak odstranit tabulku pomocí Execute Immediate of Native Dynamic SQL.

Krok 1:Připravte výpis DDL.

DDL pro odstranění tabulky je:

DROP TABLE tut_83

Tento DDL odstraní tabulku tut_83 ze schématu.

Krok 2:Napište program PL/SQL pro tabulku DROP s příkazem Execute Immediate.

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

Takže úspěšné provedení tohoto programu by mělo zahodit tabulku tut_83, kterou můžete snadno zkontrolovat pomocí příkazu DESCRIBE, jak je uvedeno výše.

Toto je návod, jak upravit a odstranit databázový objekt pomocí Alter &Drop tabulky DDL s příkazem Execute Immediate z nativního dynamického SQL v databázi Oracle. Doufám, že se vám čtení líbilo a dozvěděli jste se něco nového. Sdílejte prosím tento blog na svých sociálních sítích se svými přáteli. Můžete se se mnou také spojit na mé facebookové stránce pro další zajímavé poznatky. Děkuji a přeji hezký den!


  1. Co dělá příkaz SQL sargable?

  2. Dotaz na porovnání dat v SQL

  3. Vytváření studeného pohotovostního režimu databáze MySQL nebo MariaDB na Amazon AWS

  4. 7 způsobů, jak najít duplicitní řádky na serveru SQL při ignorování jakéhokoli primárního klíče