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