我在数据库中创建了一个将记录插入表中的函数。此函数返回 VOID 并将 VARIADIC 文本数组作为输入参数。当我在本地从数据库运行该函数时,它可以正常工作,正如预期的那样。
但是当我尝试从不同的数据库运行时,使用外部数据包装器将不起作用,根据我使用的方法抛出不同的错误。
以下是我如何拨打一种电话:
SELECT dblink('pg_log',
'SELECT public.insert_log(''usage'', ''txn'', ''dimensions'', ''test'', null,
''pgwrapper'', ''temp_var'', null, null, null, ''Start'', null,
null, null, null);');
那会抛出这个错误:
函数返回在不能接受类型记录的上下文中调用的记录
当我用 PERFORM dblink 替换 Select dblink 时,我收到此错误:
“PERFORM”处或附近的语法错误
当我尝试时,选择 dblink_exec:
我收到此错误:
不允许返回结果的语句
再次,该函数的工作原理是我在本地调用它来测试它,它做了它应该做的事情。
我检查了与此的连接,它返回正常:
SELECT dblink_connect('pg_log');
任何人都有任何想法为什么会失败并提出修复建议?
谢谢!