Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Error en trigger

Estas en el tema de Error en trigger en el foro de Oracle en Foros del Web. buenos dias , he estado buscando el error en este trigger y no he dado con el, de pronto alguien pueda ayudarme. CREATE OR REPLACE ...
  #1 (permalink)  
Antiguo 28/03/2012, 07:06
 
Fecha de Ingreso: marzo-2009
Mensajes: 120
Antigüedad: 15 años, 1 mes
Puntos: 1
Error en trigger

buenos dias , he estado buscando el error en este trigger y no he dado con el, de pronto alguien pueda ayudarme.

CREATE OR REPLACE TRIGGER depto_control
AFTER INSERT OR UPDATE OR DELETE ON depto
REFERENCING new as new old as old
FOR EACH ROW
DECLARE my.depto_audit%ROWTYPE;
BEGIN
IF inserting THEN
my.tipo_cambio := 'I';
ELSIF updating THEN
my.tipo_cambio := 'U';
ELSE
my.tipo_cambio := 'D';
END IF;
my.fecha_cambio := sysdate;
my.user_cambio := user;
CASE my.tipo_cambio
WHEN 'I' THEN
my.descript := :new.id;
ELSE
my.descript := :old.id;
END CASE;
insert INTO depto_audit values my;
END;
/


el serror es el siguiente

SQL> show errors trigger depto_control;
Errors for TRIGGER DEPTO_CONTROL:

LINE/COL ERROR
-------- -----------------------------------------------------------------
1/11 PLS-00103: Encountered the symbol "." when expecting one of the
following:
constant exception <an identifier>
<a double-quoted delimited-identifier> table long double ref
char time timestamp interval date binary national character
nchar
The symbol "<an identifier>" was substituted for "." to continue.


SQL>


gracias de antemano.
  #2 (permalink)  
Antiguo 28/03/2012, 07:59
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Error en trigger

Ese trigger no tiene ni pies ni cabeza.

¿ que es my ?, eso sobra, el resto ya lo verás por ti mismo.
  #3 (permalink)  
Antiguo 28/03/2012, 08:26
 
Fecha de Ingreso: marzo-2009
Mensajes: 120
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Error en trigger

bueno para el que lo necesite despues ya lo corregi, el error estaba en

DECLARE my.depto_audit%ROWTYPE;

es

DECLARE my depto_audit%ROWTYPE; (sin el punto)

Basicamente esto lo que hace es que me genera un objeto a partir de la tabla depto_audit
con el tipo de dato del ROW ROWTYPE,

entonces en vez de declarar 10 variables hago esto; y tengo acceso a , por ejemplo my.nombre, my.apellido, etc.

asi que este trigger si tiene muchos pies y mucha cabeza ;)

Corregido.

Etiquetas: sql, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:39.