por casualidad la funcion feria_update(); es de tipo trigger?
si lo es, ahí debe estar el error, según la información que lanza tu mensaje de error
si es ese el caso debes re-ordenar tu lógica.
saludos

El 1/8/2014 3:30 PM, Rusel Fichi escribió:
Buenos tardes Estimados,

Tengo un problema al ejecutar "perform" para llamar una funcion dentro de otra, stee indica este error:

las funciones de disparador sólo pueden ser invocadas como disparadores
CONTEXTO: compilación de la función PL/pgSQL «feria_insert_otra» cerca de la línea 1;

y esta es la funcion:

create or replace function feria_insert (dbname character varying, dbhost character varying, dbuser character varying, dbuserpass character varying) returns SETOF record AS $$
begin

--INSERTS DE MARCAS NUEVAS

insert into mercado.marca (id,des_marca,id_usuario,estado_ma) select id,des_marca,id_usuario,estado_ma from
(SELECT f.*
FROM dblink('dbname=' || $1 || ' port=5432 host=' || $2 || ' user=' || $3 ||' password=' || $4 ,'SELECT id,des_marca,id_usuario,estado_ma FROM mercado.marca')
  AS f(id integer,
  des_marca text,
  id_usuario integer,
  estado_ma integer) where id not in (select id from mercado.marca)) as a;

perform feria_update();
  end;
  $$ language plpgsql;

Si saben de algo que este haciendo mal o algo que me falta por colocar se los agradeceria.

Saludos!


________________________________________________________________________________________________
III Escuela Internacional de Invierno en la UCI del 17 al 28 de febrero del 
2014. Ver www.uci.cu

Responder a