Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como truncar a tabela no procedimento Oracle?


No Oracle, o comando TRUNCATE é uma instrução DDL, portanto, você não pode executá-lo diretamente no Oracle Procedure. Para executar comandos DDL no procedimento Oracle, use a instrução EXECUTE IMMEDIATE. A seguir é um exemplo de truncar uma tabela no procedimento Oracle usando o comando Execute Immediate.

Truncar tabela no exemplo de procedimento Oracle


No procedimento armazenado do Oracle abaixo, você pode passar o nome da tabela como um parâmetro e, em seguida, ele truncará essa tabela.
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;

Teste

SET SERVEROUTPUT ON;

BEGIN
   trnct_table ('emp');
END;
/

Saída

Table emp truncated successfully.
PL/SQL procedure successfully completed.

Observação: Você não pode ROLLBACK após truncar uma tabela no Oracle.

Veja também:

  • Programa PL/SQL para excluir os registros de uma tabela