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;
Il EXECUTE IMMEDIATE
istruzione esegue un'istruzione SQL dinamica o un blocco PL/SQL anonimo, all'interno di un blocco PL/SQL, una stored procedure o un pacchetto. Viene utilizzato in modo più specifico se è necessario eseguire istruzioni DDL come DROP
, CREATE TABLE
ecc. Non è possibile eseguire comandi DDL da PL/SQL come istruzioni DML, quindi l'unico modo è l'SQL dinamico. Maggiori informazioni qui
e qui
.