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.
Ver también:
- Programa PL/SQL para Eliminar los Registros de una Tabla