Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment tronquer une table dans une procédure Oracle ?

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