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