V Oracle je příkaz TRUNCATE příkazem DDL, takže jej nemůžete spustit přímo v Oracle Procedure. Chcete-li spustit příkazy DDL v proceduře Oracle, použijte příkaz EXECUTE IMMEDIATE. Níže je uveden příklad zkrácení tabulky v proceduře Oracle pomocí příkazu Execute Immediate.
Zkrácení tabulky v příkladu procedury Oracle
V níže uvedené uložené proceduře Oracle můžete předat název tabulky jako parametr a pak tuto tabulku zkrátí.
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; /
Výstup
Table emp truncated successfully. PL/SQL procedure successfully completed.
Poznámka: Po zkrácení tabulky v Oracle nelze ROLLBACK.
Viz také:
- Program PL/SQL pro odstranění záznamů z tabulky