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
Instrukcja wykonuje dynamiczną instrukcję SQL lub anonimowy blok PL/SQL w ramach bloku PL/SQL, procedury składowanej lub pakietu. Jest to bardziej szczegółowo używane, jeśli chcesz uruchomić instrukcje DDL, takie jak DROP
, CREATE TABLE
itd. Nie możesz wykonywać poleceń DDL z PL/SQL jako instrukcji DML, więc jedynym sposobem jest dynamiczny SQL. Więcej informacji tutaj
i tutaj
.