При вызове функции, которая возвращает две переменные OUT в качестве типа записи, выдается вышеуказанная ошибка.
Я создал эту удаленную функцию:
CREATE OR REPLACE FUNCTION public.get_del(rpt_map
json, OUT del_qry text, OUT start_date date)
RETURNS record
LANGUAGE plpgsql
AS $function$
declare rpts json;rpt_list text[];
begin
select to_char(now()::date - interval '3 Years', 'YYYY-01-01')::date
into start_date;
rpt_list = (ARRAY(SELECT json_object_keys(rpt_map)));
del_qry = (select string_agg('delete from rpt.' || rpt ||
' where dt < ''' || start_date || '', E';\n')
from unnest(rpt_list) as rpt)::text;
end;
$function$
Я пытаюсь назвать это так:
SELECT t.del_qry, t.start_date
FROM dblink('my_conn', 'select public.get_del(''' || rpt_map || ''')')
AS t(del_qry text, start_date date);
Я получаю эту ошибку:
SQL Error [42804]: ERROR: remote query result rowtype does not match the
specified FROM clause rowtype