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;
De EXECUTE IMMEDIATE
statement voert een dynamische SQL-instructie of anoniem PL/SQL-blok uit, binnen een PL/SQL-blok, of Stored Procedure of Package. Dit wordt meer specifiek gebruikt als u DDL-instructies zoals DROP
. moet uitvoeren , CREATE TABLE
enz. U kunt geen DDL-commando's uitvoeren vanuit PL/SQL als DML-statements, dus de enige manier is dynamische SQL. Meer info hier
en hier
.