I Oracle är TRUNCATE-kommandot en DDL-sats, så du kan inte köra den direkt i Oracle Procedure. För att köra DDL-kommandon i Oracle-proceduren, använd EXECUTE IMMEDIATE-satsen. Nedan är ett exempel på trunkering av en tabell i Oracle-proceduren med kommandot Execute Immediate.
Trunkera tabell i Oracle-procedurexempel
I nedanstående Oracle-lagrade procedur kan du skicka tabellnamnet som en parameter och sedan trunkeras den 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;
Testa
SET SERVEROUTPUT ON; BEGIN trnct_table ('emp'); END; /
Utdata
Table emp truncated successfully. PL/SQL procedure successfully completed.
Obs! Du kan inte ROLLBACK efter att ha trunkerat en tabell i Oracle.
Se även:
- PL/SQL-program för att ta bort poster från en tabell