Dans Oracle, la commande TRUNCATE est une instruction DDL, vous ne pouvez donc pas l'exécuter directement dans la procédure Oracle. Pour exécuter des commandes DDL dans la procédure Oracle, utilisez l'instruction EXECUTE IMMEDIATE. L'exemple ci-dessous montre comment tronquer une table dans la procédure Oracle à l'aide de la commande Exécuter immédiatement.
Tronquer la table dans l'exemple de procédure Oracle
Dans la procédure stockée Oracle ci-dessous, vous pouvez passer le nom de la table en tant que paramètre, puis il tronquera cette table.
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;
Tester
SET SERVEROUTPUT ON; BEGIN trnct_table ('emp'); END; /
Sortie
Table emp truncated successfully. PL/SQL procedure successfully completed.
Remarque : Vous ne pouvez pas ROLLBACK après avoir tronqué une table dans Oracle.
Voir aussi :
- Programme PL/SQL pour supprimer les enregistrements d'une table