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;
Le EXECUTE IMMEDIATE
L'instruction exécute une instruction SQL dynamique ou un bloc PL/SQL anonyme, dans un bloc PL/SQL, une procédure stockée ou un package. Ceci est plus spécifiquement utilisé si vous devez exécuter des instructions DDL comme DROP
, CREATE TABLE
etc. Vous ne pouvez pas exécuter de commandes DDL à partir de PL/SQL en tant qu'instructions DML, le seul moyen est donc le SQL dynamique. Plus d'informations ici
et ici
.