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!

Responder a