Oracle - Problema con Trigger al Actualizar Tabla

 
Vista:

Problema con Trigger al Actualizar Tabla

Publicado por Edu (1 intervención) el 23/02/2010 16:01:22
Tengo el siguiente trigger

CREATE OR REPLACE TRIGGER TR_AUD_LOCALES
AFTER UPDATE
ON PATRIMONIO.LOCALES
REFERENCING OLD AS OLD NEW AS NEW
for each row

DECLARE
VARUSU VARCHAR2(20);
VARDIA DATE;
BEGIN
SELECT USER,SYSDATE
INTO VARUSU,VARDIA
FROM DUAL;
IF UPDATING THEN
NEW.USUMOD := VARUSU;
NEW.FECMOD := VARDIA;
END IF;
END;

El cual no me permite compilar, me da el siguiente error:
Compilation errors for TRIGGER PATRIMONIO.TR_AUD_LOCALES

Error: PLS-00201: el identificador 'NEW.USUMOD' se debe declarar
Line: 15
Text: NEW.USUMOD := VARUSU;

Error: PL/SQL: Statement ignored
Line: 15
Text: NEW.USUMOD := VARUSU;

Error: PLS-00201: el identificador 'NEW.FECMOD' se debe declarar
Line: 16
Text: NEW.FECMOD := VARDIA;

Error: PL/SQL: Statement ignored
Line: 16
Text: NEW.FECMOD := VARDIA;

La idea es que al actualizar la tabla se debe actualizar los campos USUMOD y FECMOD, con el usuario y la fecha que realizo la acción.

Alguien tiene una idea de que podría ser el problema, o como puedo implementar lo que necesito.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con Trigger al Actualizar Tabla

Publicado por Fernando (1 intervención) el 10/03/2010 11:32:32
create or replace TRIGGER "ESQUEMA_PROPIETARIO".TR_AUD_LOCALES
BEFORE UPDATE
ON PATRIMONIO.LOCALES
FOR EACH ROW
DECLARE
V_USUARIO VARCHAR2(20);
V_FECHA DATE;
CURSOR C IS
SELECT USER,
SYSDATE
FROM SYS.DUAL;
BEGIN
/* SE ABRE EL CURSOR SOBRE EL SISTEMA */
OPEN C;
/* SE RECUPERAN LOS DATOS DE USUARIO Y FECHA */
FETCH C
INTO V_USUARIO,
V_FECHA;
/* SE CIERRA EL CURSOR */
CLOSE C;
/* SI ESTÁ ACTUALIZANDO LA FILA */
IF UPDATING THEN
/* SE ASIGNAN VALORES A LAS COLUMNAS DE AUDITORIA */
:NEW.MODIFICADOR := V_USUARIO;
:NEW.F_MODIFICACION := V_FECHA;
END IF;
END;


Es muy posible que el fallo lo tengas en el AFTER UPDATE que tienes puesto, lo normal es que cambie esos valores justo antes de realizar la actualización del registro.
Prueba esto a ver que tal va
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con Trigger al Actualizar Tabla

Publicado por pedro (38 intervenciones) el 26/03/2010 13:35:50
Te faltan los dos puntos delante del new
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar