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

TRIGGER en oracle 10g.

Estas en el tema de TRIGGER en oracle 10g. en el foro de Bases de Datos General en Foros del Web. ke tal tengo una tabla que se llama mitabla y tiene tres campos c1,c2 y media todos numericos... quiero hacer un trigger ke actualice media ...
  #1 (permalink)  
Antiguo 29/04/2005, 17:36
Avatar de sir_joshua  
Fecha de Ingreso: diciembre-2004
Mensajes: 411
Antigüedad: 19 años, 4 meses
Puntos: 0
TRIGGER en oracle 10g.

ke tal tengo una tabla que se llama mitabla y tiene tres campos c1,c2 y media todos numericos...

quiero hacer un trigger ke actualice media con la media de c1 y c2 cuando se haga un insert o un update; pongo lo siguiente pero no funciona cuando hago un update no hace nada el trigger...

create or replace trigger promedio
after update or insert on mitabla
for each row
declare
media number;
begin
select (:new.c1 + :new.c2)/2
into media
from dual;
end;
/

que modifico o ke puedo hacer..? salu2.
__________________
http://sir-joshua.hi5.com
Mex. Mex.
  #2 (permalink)  
Antiguo 01/05/2005, 11:19
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
para facil, solo te faltaria asignarle el valor al campo, o sea la linea

:new.media := media;

aunque no es necesario hacer el select, podrias hacer ( si no mal recuerdo )

:new.media := (:new.c1 + :new.c2) / 2;
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 02/05/2005, 11:12
Avatar de sir_joshua  
Fecha de Ingreso: diciembre-2004
Mensajes: 411
Antigüedad: 19 años, 4 meses
Puntos: 0
mmm no amigo, si pongo:

create or replace trigger promedio
after update or insert on mitabla
for each row
declare
media number;
begin
select (:new.c1 + :new.c2)/2
into media
from dual;
:new.media := media;
end;
/

************

create or replace trigger promedio
after update or insert on mitabla
for each row
begin
:new.media (:new.c1 + :new.c2)/2;
end;
/

tambien marca error .... nose como se te ocurriria que podria kedar bien..?

salu2.
__________________
http://sir-joshua.hi5.com
Mex. Mex.
  #4 (permalink)  
Antiguo 03/05/2005, 18:04
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
encuentra las diferencias entre

:new.media := (:new.c1 + :new.c2) / 2;

y

:new.media (:new.c1 + :new.c2)/2;
__________________
Blogzote.com :-) Mi blog
  #5 (permalink)  
Antiguo 11/08/2012, 14:37
 
Fecha de Ingreso: agosto-2012
Ubicación: Madrid
Mensajes: 1
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: TRIGGER en oracle 10g.

Hola:

Conseguí que me funcionara cambiando AFTER por BEFORE

create or replace trigger promedio
before update or insert on mitabla
for each row
declare
media number;
begin
select ((:new.c1 + :new.c2)/2)
into media
from dual;
:new.media := media;
end;
  #6 (permalink)  
Antiguo 12/08/2012, 19:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: TRIGGER en oracle 10g.

Cerrado por obsolecencia (Politica 2.7 - FDW).
El post tiene siete (7) años y el usuario que lo abrió no se ha conectado en más de cuatro años.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:02.