Auditoria de Datos
CREATE OR REPLACE TRIGGER AUD_AA_ANTONIO
AFTER DELETE OR INSERT OR UPDATE
ON gesafin.AA_ANTONIO
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
DECLARE
Var_Tabla Varchar2(50):='AA_ANTONIO';
Cadena_old Varchar2(32767);
Cadena_new Varchar2(32767);
CURSOR CUR_Tabla is
Select *
From SYS.DBA_tab_columns t
Where owner = 'GESAFIN' and table_name = Var_Tabla
Order by t.COLUMN_ID;
BEGIN
IF (INSERTING OR UPDATING OR DELETING)
THEN
FOR reg_Tabla IN CUR_Tabla LOOP
Begin
Cadena_new := Cadena_New || '|' || reg_Tabla.Column_Name;
Cadena_old := Cadena_old || '|' || reg_Tabla.Column_Name;
End;
End Loop;
PKG_AUDITORIA_TRANSACCIONES.P_AUDITORIA_TRANSACCIONES (Var_Tabla, :old.AUDITORIA1, Cadena_old, Cadena_new);
END IF;
END aud_AA_ANTONIO;
END;
-- Lo que se trata es de concatenar los valores nuevos y viejos de los datos de los campos de la tabla
en la sentencia Cadena_New := Cadena_New || '|' || reg_Tabla.Column_Name;
Queriendo que reg_Tabla.Column_Name fuese reg_Tabla.:New.Column_Name
AFTER DELETE OR INSERT OR UPDATE
ON gesafin.AA_ANTONIO
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
DECLARE
Var_Tabla Varchar2(50):='AA_ANTONIO';
Cadena_old Varchar2(32767);
Cadena_new Varchar2(32767);
CURSOR CUR_Tabla is
Select *
From SYS.DBA_tab_columns t
Where owner = 'GESAFIN' and table_name = Var_Tabla
Order by t.COLUMN_ID;
BEGIN
IF (INSERTING OR UPDATING OR DELETING)
THEN
FOR reg_Tabla IN CUR_Tabla LOOP
Begin
Cadena_new := Cadena_New || '|' || reg_Tabla.Column_Name;
Cadena_old := Cadena_old || '|' || reg_Tabla.Column_Name;
End;
End Loop;
PKG_AUDITORIA_TRANSACCIONES.P_AUDITORIA_TRANSACCIONES (Var_Tabla, :old.AUDITORIA1, Cadena_old, Cadena_new);
END IF;
END aud_AA_ANTONIO;
END;
-- Lo que se trata es de concatenar los valores nuevos y viejos de los datos de los campos de la tabla
en la sentencia Cadena_New := Cadena_New || '|' || reg_Tabla.Column_Name;
Queriendo que reg_Tabla.Column_Name fuese reg_Tabla.:New.Column_Name
1 respuesta
Respuesta de yalayon
1