Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   TRIGGER en oracle 10g. (http://www.forosdelweb.com/f21/trigger-oracle-10g-293721/)

sir_joshua 29/04/2005 17:36

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.

kikolice 01/05/2005 11:19

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;

sir_joshua 02/05/2005 11:12

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.

kikolice 03/05/2005 18:04

encuentra las diferencias entre

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

y

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

todoaeropuertos 11/08/2012 14:37

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;

gnzsoloyo 12/08/2012 19:57

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.


La zona horaria es GMT -6. Ahora son las 22:12.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.