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

-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a