Jaime

Eso ya lo probe, y no anduvo.
Ya lo resolvi, tengo dos databases, A y B.
Arme una  tabla en la base B con los campos que necesito.
a esa tabla le puse un trigger, en ese trigger armo con el registro que
me envia el insert en la tabla A ,la llamada a la
func update_or_insert_nacionalidades(...)
Desde la base A por medio de dblink  inserto un registro en la tabla armada
en la
base B y funciona bien.
llege a la conclusion que el dblink no anda con funciones.
salu2
jmdc

2012/11/16 Jaime Casanova <[email protected]>

> 2012/11/15 Juan <[email protected]>:
> >
> > sql = 'perform   update_or_insert_nacionalidades( ' ;
> > sql = sql || quote_literal( v_cod2 )  || ' ::text  ,' ;
> > sql = sql || quote_literal(v_nombre )  || ' ::text  );' ;
> >
>
> La verdad es que me estoy matando de la risa... es como ver a un
> cachorrito perseguirse la cola! ;)
>
> Te dije ya que perform solo funciona dentro de codigo plpgsql, y
> dblink esta estableciendo una conexion independiente a la base por lo
> que el perform no se esta ejecutando en el contexto de una funcion
> plpgsql.
>
> en el otro ejemplo agregaste un "into p" pero como la funcion esta
> definida como que devuelve void no puedes crear una tabla basandote en
> su resultado (lo de crear una tabla es porque fuera del contexto de
> una funcion plpgsql SELECT ... INTO crea una tabla temporal,
> http://www.postgresql.org/docs/9.2/static/sql-selectinto.html)
>
> prueba asi:
>
> select dblink_exec( ' select  update_or_insert_nacionalidades( ''22''
> ::text  ,''Colombiana'' ::text  );') ;
>
> --
> Jaime Casanova         www.2ndQuadrant.com
> Professional PostgreSQL: Soporte 24x7 y capacitación
> Phone: +593 4 5107566         Cell: +593 987171157
>

Responder a