Oracle
 sql >> Database >  >> RDS >> Oracle

Come utilizzare comandi come DROP TABLE ecc. all'interno di una procedura memorizzata

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 .