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

Triggers/ disparador

Estas en el tema de Triggers/ disparador en el foro de Oracle en Foros del Web. tENGO UN PROBLEMA EN ESTE TRIGGER, me da error en la linea 16 (v_gratificacion_posterior :=new.gratificacion;), y no entiendo porque @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original ...
  #1 (permalink)  
Antiguo 18/05/2014, 23:47
 
Fecha de Ingreso: mayo-2014
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Triggers/ disparador

tENGO UN PROBLEMA EN ESTE TRIGGER, me da error en la linea 16 (v_gratificacion_posterior :=new.gratificacion;), y no entiendo porque



Código SQL:
Ver original
  1. CREATE OR REPLACE TRIGGER audit_trigger BEFORE INSERT OR DELETE OR UPDATE OF gratificacion
  2. ON PARTICIPAR FOR EACH ROW
  3. DECLARE
  4. v_gratificacion_anterior NUMBER;
  5. v_gratificacion_posterior NUMBER;
  6. BEGIN
  7. SELECT osuser INTO v_usuario FROM v$session WHERE audsid=USERNV('SESSIONID');
  8. IF INSERTING THEN
  9. v_gratificacion_anterior :=NULL;
  10. v_gratificacion_posterior :=NEW.gratificacion;
  11. ELSIF DELETING THEN
  12. v_gratificacion_anterior :=OLD.gratificacion;
  13. v_gratificacion_posterior :=NULL;
  14. ELSIF UPDATING THEN
  15. v_gratificacion_anterior := OLD.gratificacion;
  16. v_gratificacion_posterior :=NEW.gratificacion;
  17. END IF;
  18. INSERT INTO auditoria (usuario, codigoPonente, codigoConferencia, fecha, gratificacionAnterior, gratificacionPosterior)
  19. VALUES(v_usuario, codPonente, refConferencia, sysdate, v_gratificacion_anterior, v_gratificacion_posterior);
  20. END;

Última edición por gnzsoloyo; 19/05/2014 a las 04:58 Razón: USAR HIGHLIGHT "SQL", POR FAVOR.
  #2 (permalink)  
Antiguo 19/05/2014, 00:28
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Triggers/ disparador

Los new y los old deben ir con los dos puntos :

:NEW
:OLD

Mira a ver si es eso, por otra parte si te salta algun error, no vendría mal que lo pusieras, errores ORA-XXXX hay chorrocientos y si nos pones el que te salta tendremos mas informacion para ayudarte
  #3 (permalink)  
Antiguo 19/05/2014, 04:51
 
Fecha de Ingreso: mayo-2014
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Triggers/ disparador

NO ME marca ningun codigo de error solo error en la linea 16:: PL/SQL: SQL Statement ignored
He observado que si le pongo los dos puntos y le quito el ultimo elsif me da el error en la linea 13
  #4 (permalink)  
Antiguo 22/05/2014, 02:29
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Triggers/ disparador

Si le pones los dos puntos al NEW y al OLD y declaras v_usuario, te funcionará.

Etiquetas: disparador, select
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 00:25.