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;
O
EXECUTE IMMEDIATE
A instrução executa uma instrução SQL dinâmica ou um bloco PL/SQL anônimo, dentro de um bloco PL/SQL, Stored Procedure ou Package. Isso é usado mais especificamente se você precisar executar instruções DDL como DROP
, CREATE TABLE
etc. Você não pode executar comandos DDL de PL/SQL como instruções DML, então a única maneira é o SQL dinâmico. Mais informações aqui
e aqui
.