ejecutar funcion utilizando dblink

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

Responses

Browse pgsql-es-ayuda by date

  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