I Oracle er TRUNCATE-kommandoen en DDL-sætning, så du kan ikke udføre den direkte i Oracle-proceduren. For at udføre DDL-kommandoer i Oracle-proceduren skal du bruge EXECUTE IMMEDIATE-sætningen. Nedenstående er et eksempel på trunkering af en tabel i Oracle-proceduren ved hjælp af Execute Immediate-kommandoen.
Trunker tabel i Oracle-procedureeksempel
I nedenstående Oracle-lagrede procedure kan du videregive tabelnavnet som en parameter, og så vil den afkorte tabellen.
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;
/ Output
Table emp truncated successfully. PL/SQL procedure successfully completed.
Bemærk: Du kan ikke RULLE TILBAGE efter at have trunkeret en tabel i Oracle.
Se også:
- PL/SQL-program til at slette posterne fra en tabel