Hola,
Tengo que ejecutar (desde toba) una función postgresql que utiliza la extensión dblink de postgresql.
La función anda ok si la ejecuto desde pgadmin o desde php por fuera de toba (con un pg_query), al ejecutarla desde toba devuelve un error indicando que no encuentra la extensión dblink.
Por las dudás activé la extensión dblink en la base toba y en las dos bases que intervienen en la función pero el problema persiste.
La ejecución de las consultas sobre toba se realiza de alguna manera en particular que pueda estar generando que no se encuentre la extensión dblink?
Adjunto una versión resumida de la función (porque la función original es muy larga y no tiene sentido copiarla entera):
CREATE OR REPLACE FUNCTION calchaqui.actualizar_querandi(connstring text)
RETURNS integer AS
$BODY$
DECLARE passed integer;
DECLARE query text;
BEGIN
CREATE EXTENSION IF NOT EXISTS dblink;
DELETE FROM querandi.inf_inmuebles;
INSERT INTO querandi.inf_inmuebles
SELECT inm.*
FROM dblink($1,
'SELECT * FROM querandi.inf_inmuebles') AS inm(
cod_inf_inmueble integer,
cod_institucion integer,
descripcion varchar(255),
calle_nombre_numero varchar(255),
localidad integer,
cod_situacion_dominio integer,
cod_inf_ubicacion integer,
valuacion_tecnica_contable numeric(12,0),
unidad_economica character(10),
superficie_terreno numeric(10,0),
unidad_superficie_terreno character(1),
superficie_construida numeric(10,0),
unidad_superficie_construida character(1),
superficie_no_construida numeric(10,0),
unidad_superficie_no_construida character(1),
fot_normativo numeric(3,2),
fot_real numeric(3,2),
fos_normativo numeric(3,2),
fos_real numeric(3,2),
fecha_alta date,
fecha_ultima_modificacion date,
otra_situacion_dominio varchar(255),
observaciones text,
nombre_archivo character varying,
archivo bytea,
anio integer
);
passed = 1;
RETURN passed;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION calchaqui.actualizar_querandi(text)
OWNER TO postgres;
Saludos
Leo