当我运行此代码时:
do
$func$
declare cmd text;
begin
cmd = FORMAT($$ select public.func_doit('%s'::date, '%s'::date); $$,'2019-01-01', '2019-03-01');
PERFORM DBLINK('my_conn', cmd);
end;
$func$
我收到以下错误:
SQL错误[0A000]:错误:函数返回的记录在无法接受类型记录的上下文中调用 其中:SQL语句“ SELECT DBLINK('my_conn',cmd)” PL / pgSQL函数inline_code_block在PERFORM的第12行 错误:函数返回的记录在无法接受类型记录的上下文中调用 其中:SQL语句“ SELECT DBLINK('my_conn',cmd)” PL / pgSQL函数inline_code_block在PERFORM的第12行 错误:函数返回的记录在无法接受类型记录的上下文中调用 其中:SQL语句“ SELECT DBLINK('my_conn',cmd)” PL / pgSQL函数inline_code_block在PERFORM的第12行
正在调用的函数:public.func_doit
,RETURNS void
。
错误消息所引用的组合中没有 记录 。该功能只是做些什么,没有任何返回值。
在被调用的函数中放置通知之后,将发布non,这意味着该函数甚至没有开始执行。
我知道该函数之所以有效,是因为当我直接从其本地DB调用它时,它可以按预期的方式使用相同的参数。
PERFORM
是在此处使用的正确语句,因为该函数不返回任何内容。
我还尝试了...perform * from public.func_doit...
,它引发了语法错误。
我在这里想念什么?