El lun, 26-01-2009 a las 11:28 -0300, Paulo Nuñez Valenzuela escribió:
> Amigos: 
> Soy nuevo en esta lista me gustaria si me pueden ayudar con el
> siguiente tema.
> tengo un trigger creado en Oracle y ahora estamos migrando a
> Postgresql, bueno mi funcion disparadora es la siguiente
> 
> CREATE OR REPLACE FUNCTION SUMA_INGRESO() RETURNS trigger AS $$
> BEGIN
> IF (TG_OP = 'INSERT') OR (TG_OP = 'UPDATE') THEN
>    if new.CGINGRESO_VNETO != 0 then
>    update cg_ingegre
>       set CGINGEGRE_TINGRE = CGINGEGRE_TINGRE + new.CGINGRESO_VNETO
>       where mgempre_cod = new.MGEMPRE_COD
>       and CGPRODUCTOR_IDR = new.CGPRODUCTOR_IDR
>       and CGFPROC_AAAA = new.CGFPROC_AAAA
>       and CGFPROC_MM = new.CGFPROC_MM;
>   end if;
> end if;
> 
> IF (TG_OP = 'DELETE') OR (TG_OP = 'UPDATE') THEN
>   if old.CGINGRESO_VNETO != 0 then
>    update cg_ingegre
>       set CGINGEGRE_TINGRE = CGINGEGRE_TINGRE - old.CGINGRESO_VNETO
>        where mgempre_cod = old.MGEMPRE_COD
>       and CGPRODUCTOR_IDR = old.CGPRODUCTOR_IDR
>       and CGFPROC_AAAA = old.CGFPROC_AAAA
>       and CGFPROC_MM = old.CGFPROC_MM;
>   end if;
> end if;
> end;
> $$ LANGUAGE plpgsql;
> 
> el trigger que lo llama es:
> 
>   CREATE TRIGGER "ICG_INGRESO"
>   AFTER INSERT OR UPDATE OR DELETE
>   ON cg_ingreso
>   FOR EACH ROW
>   EXECUTE PROCEDURE suma_ingreso();
> 
> Este trigger no es mas que una suma ascendente

Lo que te dejo a continuación es un ejemplo del manual:

Portando funciones desde PL/SQL de Oracle hacia PL/pgSQL:


CREATE OR REPLACE FUNCTION cs_fmt_browser_version(v_name varchar,
v_version varchar)

RETURN varchar IS

BEGIN

IF v_version IS NULL THEN

RETURN v_name;

END IF;

RETURN v_name || '/' || v_version;


END;



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

CREATE OR REPLACE FUNCTION cs_fmt_browser_version(v_name varchar,
v_version varchar)


RETURNS varchar AS $$

BEGIN

IF v_version IS NULL THEN

RETURN v_name;

END IF;

RETURN v_name || '/' || v_version;

END;

$$ LANGUAGE plpgsql;

> De antemano muchas gracias amigos
> 
> 

--
TIP 5: �Has le�do nuestro extenso FAQ?
         http://www.postgresql.org/docs/faqs.FAQ.html

Responder a