From: | "Diego Ayala" <netdiego81(at)gmail(dot)com> |
---|---|
To: | "Postgres Ayuda" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | ejecutar funcion utilizando dblink |
Date: | 2008-09-24 16:19:28 |
Message-ID: | 6b81cb150809240919w241bf8a2hfc457a07193aca11@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
buenos días, tengo el siguiente problema, estoy utilizando dblink, para
ejecutar una función mediante un trigger, que se encuentra en otra base de
datos, la función recibe varios parametros de búsqueda, lo tengo de esta
forma
Tengo mi funcion sige_db.f_insert_probando1 y su estructura es la siguiente
CREATE OR REPLACE FUNCTION sige_db.f_insert_probando1(exp integer, ano
integer, obs character varying, tipo smallint, des smallint, med smallint,
mod integer, fecha date, mail character varying, nen smallint, ent smallint,
uoc smallint, suoc smallint, uep smallint)
RETURNS integer AS
$BODY$
BEGIN
raise notice 'ingrese a la funcion del wf';
INSERT INTO "sige_db"."tbl_expedientewf" ("cod_expediente",
"nro_expediente", "anio_expediente",
"desc_exped", "entid", "desid", "medid", "modid", "mefchexp",
"mail_institucion", "nen_codigo", "ent_codigo", "uoc_codigo", "suoc_codigo",
"uep_codigo")
VALUES (nextval('sige_db.expediente_seq'), exp, ano, obs, tipo,des, med,mod,
fecha, mail, nen, ent, uoc, suoc, uep);
raise notice 'ejecute el insert';
RETURN 0;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Mi trigger que es donde se ejecuta mi funcion y que se encuentra en la otra
base de datos esta de la siguiente forma:
SELECT * INTO r1 FROM dblink_connect('conn_wf113','hostaddr=
192.168.192.220 dbname=baseA user=user password=user');
PERFORM DBLINK_EXEC('conn_wf113','SELECT
sige_db.f_insert_probando1('||exp||'::integer'||','||ano||'::integer'||','''||obs||'''::character
varying'||','||tipo||'::smallint'||','||des||'::smallint'||','||med||'::smallint'||','||mod||'::smallint'||','''||fecha||'''::date'||','''||mail||'''::character
varying'||',
'||nen||'::smallint'||','||ent||'::smallint'||','||uoc||'::smallint'||','||suoc||'::smallint'||','||uep||'::smallint'||')');
SELECT * INTO r1 FROM dblink_disconnect('conn_wf113');
Al ejecutar el trigger modifica el valor en la tabla de mi otra base de
datos donde tengo la función, pero no m deja insertar en la tabla donde
ejecuto el trigger x que me sale el siguiente mensaje.
postgres baseA INSERTERROR: statement returning results not allowed
el trigger se ejecuta AFTER INSERT, tengo una base de datos 8.3.3 sobre
linux RHES 5, como podría solucionar este error..??
gracias por la atencion y la ayuda..
--
Diego Ayala
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-09-24 19:14:22 | Re: Grupo local en españa: Parte II |
Previous Message | Espartano | 2008-09-24 16:17:08 | Re: El API ... Ayuda |