In Oracle is de opdracht TRUNCATE een DDL-instructie, dus u kunt deze niet rechtstreeks in Oracle Procedure uitvoeren. Gebruik de instructie EXECUTE IMMEDIATE om DDL-opdrachten in de Oracle-procedure uit te voeren. Het onderstaande is een voorbeeld van het afkappen van een tabel in de Oracle-procedure met behulp van de opdracht Direct uitvoeren.
Truncate-tabel in Oracle-procedurevoorbeeld
In de onderstaande Oracle-opgeslagen procedure kunt u de tabelnaam als parameter doorgeven, waarna deze tabel wordt afgekapt.
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; /
Uitvoer
Table emp truncated successfully. PL/SQL procedure successfully completed.
Opmerking: U kunt niet ROLLBACK na het afkappen van een tabel in Oracle.
Zie ook:
- PL/SQL-programma om records uit een tabel te verwijderen