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

Jak používat příkazy jako DROP TABLE atd. v rámci uložené procedury

CREATE OR REPLACE PROCEDURE proc_name AS
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE SQL2005TEST.ABSENCEFULLDATADIFF_YESTERDAY';
.....
EXECUTE IMMEDIATE 'CREATE TABLE SQL2005TEST.ABSENCELATESTEND_YESTERDAY
                       AS SELECT * FROM SQL2005TEST.ABSENCELATESTEND';
....
....
EXCEPTION
  ....
  ....
END;

EXECUTE IMMEDIATE příkaz spustí dynamický příkaz SQL nebo anonymní blok PL/SQL v rámci bloku PL/SQL nebo uložené procedury nebo balíčku. Toto se konkrétněji používá, pokud potřebujete spouštět příkazy DDL jako DROP , CREATE TABLE atd. Příkazy DDL z PL/SQL nemůžete spouštět jako příkazy DML, takže jedinou cestou je dynamické SQL. Další informace zde a zde .




  1. Propojení Django a Postgresql s Dockerem

  2. Jak načíst seskupené zprávy uspořádané podle data SQL

  3. Jaký je limit velikosti pro tabulku Query/View v MySQL?

  4. seskupit podle potřeby v příkazu SQL count(*)?