From: | Gilberto Castillo Martínez <gilberto(dot)castillo(at)etecsa(dot)cu> |
---|---|
To: | Paulo Nuñez Valenzuela <paulonunex(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Buenos dias lista |
Date: | 2009-01-26 14:54:48 |
Message-ID: | 1232981688.6452.15.camel@gilbertoc |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2009-01-26 14:56:45 | Re: Problemas conectando php5-pgadmin3->postgresql 8.3 |
Previous Message | Lennin Caro | 2009-01-26 14:53:32 | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Función que retorna la posición de un caracter dentro de una cadena |