Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ALTER &DROP Table DDL z natychmiastowym wykonaniem w bazie danych Oracle

ALTER &DROP Tabela DDL

W tej chwili poznaliśmy wszystkie możliwe sposoby tworzenia tabeli bezpośrednio w bloku PL/SQL przy użyciu natywnego dynamicznego SQL. Możesz je sprawdzić w dwóch ostatnich samouczkach, czyli samouczku 82 i samouczku 83.

Dziękujemy, Dynamic SQL za umożliwienie nam wykonywania instrukcji DDL i DML w naszym bloku PL/SQL. Ok, uspokójcie się wszyscy ludzie epoki kamienia! Wiem, że pakiet DBMS_SQL nadal istnieje, ale w porównaniu do dynamicznego SQL uważam, że jest bardzo złożony, nie wspominając o jego powolnej wydajności. W każdym razie, więc

Czego uczymy się z tego samouczka?

W tym samouczku dowiemy się, jak używać DDL tabeli ALTER &DROP z instrukcją Execute Immediate Native dynamicznego SQL. Oznacza to, że pod koniec tego samouczka będziesz w stanie dynamicznie modyfikować i usuwać obiekt bazy danych, taki jak tabela, bezpośrednio w programie PL/SQL.

Dlaczego powinniśmy się tego nauczyć?

Niektórzy mogą uznać ten temat za nieistotny, ale raczej nie jest to bardzo ważny temat, zwłaszcza z perspektywy certyfikacji Oracle i wywiadów. Ponadto, będąc programistą, wszyscy musimy mieć jasne podstawy, ponieważ nigdy nie wiesz, kiedy będziesz ich potrzebować.

Zacznijmy więc samouczek, jeśli nadal masz pytania, możesz je przesłać na moim Facebooku, tutaj. Najpierw nauczmy się modyfikować tabelę za pomocą ALTER TABLE z Execute Immediate of Dynamic SQL.

Jak dynamicznie modyfikować tabelę?

W celu modyfikacji obiektu bazy danych, takiego jak tabela, używamy ALTER DDL w Oracle Database. Modyfikowanie tabeli za pomocą ALTER DDL przez SQL jest łatwe w porównaniu do PL/SQL.

PL/SQL nie obsługuje bezpośrednio instrukcji DDL, DML i DQL. W celu wykonania wspomnianych instrukcji SQL musimy skorzystać albo z pakietu Dynamic SQL albo z pakietu DBMS_SQL. Spośród tych dwóch, Native Dynamic SQL (NDS) jest najbardziej opłacalną opcją ze względu na swoją prostotę i zoptymalizowaną wydajność. Możesz przeczytać o zaletach pakietu NDS w porównaniu z pakietem DBMS_SQL tutaj.

Tak więc najprostszym sposobem dynamicznej modyfikacji obiektu bazy danych, takiego jak tabela, jest użycie instrukcji Alter Table DDL z instrukcją Execute Immediate natywnego dynamicznego SQL.

Przykład:zmiana DDL tabeli z instrukcją Execute Immediate.

Do demonstracji użyjemy tej samej tabeli, którą stworzyliśmy w poprzednim samouczku. Tam utworzyliśmy tabelę o nazwie tut_83, która miała dwie kolumny tut_num typu danych NUMBER i tut_name typu danych varchar 2.

Jeśli ćwiczysz ze mną, musisz mieć stworzoną tabelę w swoim schemacie. Jeśli tak, to wszystko jest gotowe, aby przejść do ostatniego samouczka i utworzyć tę tabelę.

Teraz powiedzmy, że chcemy dodać kolejną kolumnę tut_date typu data do tej tabeli i to również za pomocą natywnego dynamicznego SQL. W tym celu musimy użyć instrukcji ALTER TABLE DDL z instrukcją Execute Immediate.

Krok 1:Przygotuj oświadczenie DDL.

Najlepszą praktyką przy pisaniu programu Dynamic SQL jest wcześniejsze przygotowanie instrukcji SQL.

ALTER TABLE tut_83 ADD tut_date DATE

Oto plik DDL ALTER TABLE, którego będziemy używać do dynamicznego wykonywania. Ta instrukcja doda kolumnę tut_date typu danych DATE do tabeli tut_83.

Możesz także obejrzeć samouczek wideo, aby zademonstrować koncepcję na żywo.

Krok 2:Napisz program natywnego dynamicznego SQL.

Po przygotowaniu instrukcji DDL wszystko jest gotowe do pisania bloku 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 pomyślnym wykonaniu ten program PL/SQL zmodyfikuje powyższą tabelę. Możesz sprawdzić zmodyfikowaną strukturę swojej tabeli za pomocą polecenia DESCRIBE, w ten sposób

DESCRIBE tut_83;

LUB

DESC tut_83;

To wszystko, co musisz zrobić. W ten sposób dynamicznie modyfikujemy obiekt bazy danych za pomocą instrukcji ALTER TABLE DDL z instrukcją Execute Immediate. To również kończy pierwszą część samouczka, teraz przejdźmy do drugiej i dowiedzmy się, jak usunąć tabelę za pomocą natywnego dynamicznego SQL.

Jak dynamicznie usunąć tabelę?

Aby usunąć obiekt bazy danych, taki jak tabela, używamy DROP DDL w Oracle Database. Jak każda inna instrukcja DDL, ta również nie jest bezpośrednio obsługiwana przez silnik PL/SQL. I jak zwykle musimy użyć Dynamic SQL do uruchomienia tego DDL. Zobaczmy, jak usunąć tabelę za pomocą Execute Immediate of Native Dynamic SQL.

Krok 1:Przygotuj oświadczenie DDL.

DDL do usunięcia tabeli to:

DROP TABLE tut_83

Ten plik DDL usunie tabelę tut_83 ze schematu.

Krok 2:Napisz program PL/SQL dla tabeli DROP z Execute Immediate.

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

Tak więc pomyślne wykonanie tego programu powinno usunąć tabelę tut_83, którą można łatwo sprawdzić za pomocą polecenia DESCRIBE, jak pokazano powyżej.

Jest to samouczek dotyczący modyfikowania i usuwania obiektu bazy danych za pomocą instrukcji Alter &Drop tabeli DDL z instrukcją Execute Immediate natywnego dynamicznego SQL w bazie danych Oracle. Mam nadzieję, że podobało Ci się to czytanie i nauczyłeś się czegoś nowego. Udostępnij ten blog w swoich mediach społecznościowych znajomym. Możesz również połączyć się ze mną na mojej stronie na Facebooku, aby uzyskać więcej interesujących informacji. Dzięki i życzę miłego dnia!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak wybrać tylko wiersz z sekwencją max bez użycia podzapytania?

  2. Zwróć wyniki zapytania jako listę oddzieloną przecinkami w Oracle

  3. ORA-04091:tabela [blah] mutuje, wyzwalacz/funkcja może jej nie widzieć

  4. Czym są rekordy PLSQL w Oracle

  5. Kolekcja PL/SQL:zagnieżdżona tabela w bazie danych Oracle