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