sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo truncar la tabla en el procedimiento de Oracle?

En Oracle, el comando TRUNCATE es una declaración DDL, por lo que no puede ejecutarlo directamente en el procedimiento de Oracle. Para ejecutar comandos DDL en el procedimiento de Oracle, use la instrucción EXECUTE IMMEDIATE. El siguiente es un ejemplo de cómo truncar una tabla en un procedimiento de Oracle usando el comando Ejecutar inmediatamente.

Truncar tabla en el ejemplo de procedimiento de Oracle

En el siguiente procedimiento almacenado de Oracle, puede pasar el nombre de la tabla como parámetro y luego truncará esa tabla.

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;

Prueba

SET SERVEROUTPUT ON;

BEGIN
   trnct_table ('emp');
END;
/

Salida

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

Nota: No puede ROLLBACK después de truncar una tabla en Oracle.

Ver también:

  • Programa PL/SQL para Eliminar los Registros de una Tabla