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