In Oracle, il comando TRUNCATE è un'istruzione DDL, quindi non è possibile eseguirlo direttamente in Oracle Procedure. Per eseguire i comandi DDL nella procedura Oracle, usa l'istruzione EXECUTE IMMEDIATE. Di seguito è riportato un esempio di troncamento di una tabella nella procedura Oracle utilizzando il comando Esegui Immediato.
Tronca tabella nell'esempio di procedura Oracle
Nella procedura Oracle memorizzata di seguito, puoi passare il nome della tabella come parametro e quindi troncherà quella tabella.
CREATE OR REPLACE PROCEDURE trnct_table (i_table_name IN VARCHAR2) IS BEGIN EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || i_table_name; DBMS_OUTPUT.put_line ( 'Table ' || i_table_name || ' truncated successfully.'); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line ('Truncate table failed.'); END;
Test
SET SERVEROUTPUT ON; BEGIN trnct_table ('emp'); END; /
Uscita
Table emp truncated successfully. PL/SQL procedure successfully completed.
Nota: Non puoi eseguire il ROLLBACK dopo aver troncato una tabella in Oracle.
Vedi anche:
- Programma PL/SQL per eliminare i record da una tabella