我在数据库中创建了一个函数,可以将记录插入到表中。此函数返回VOID并将可变文本数组作为输入参数。当我在本地从数据库运行该函数时,正如预期的那样,它工作得很好。
但是,当我尝试从不同的数据库运行时,使用外部数据包装将不起作用,并根据我使用的方法抛出不同的错误。
以下是我打电话的方式:
SELECT dblink('pg_log',
'SELECT public.insert_log(''usage'', ''txn'', ''dimensions'', ''test'', null,
''pgwrapper'', ''temp_var'', null, null, null, ''Start'', null,
null, null, null);');
该错误会引发以下错误:
函数返回在无法接受类型记录的上下文中调用的记录
当我将Select dblink替换为PERFORM dblink时,会出现以下错误:
“执行”处或附近出现语法错误
当我尝试时,选择dblink\u exec:
我收到以下错误:
不允许返回结果的语句
同样,该函数的工作方式是我在本地调用它来测试它,并执行它应该执行的操作。
我检查了与此的连接,它返回OK:
SELECT dblink_connect('pg_log');
有人知道为什么会失败,并对修复提出建议吗?
谢谢