错误:函数dblink(未知,未知)不存在

时间:2018-06-19 20:13:16

标签: postgresql dblink

我已经定义了一个指向另一个数据库的外部服务器。然后,我想在该数据库中执行一个函数并获取结果。

当我尝试这样做时:

SELECT * FROM  dblink('mylink','select someschema.somefunction(''test'', ''ABC'')')

或者这个:

SELECT t.n FROM  dblink('mylink', 'select * from someschema.mytable') as t(n text)

我得到了错误:

  

错误:函数dblink(未知,未知)不存在

以超级用户身份运行。

3 个答案:

答案 0 :(得分:3)

就我而言(如@HuFlungPu注释中所述),问题是我最初在dblink模式中创建了public。我执行SET search_path TO my_schema是因为我正在my_schema上工作;所以在查询dblink时我收到

ERROR: function dblink(unknown, unknown) does not exist
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

执行SET search_path TO public(其中“ public”是创建dblink的模式)后,我能够再次通过dblink成功查询

答案 1 :(得分:2)

您需要安装扩展dblink

create extension dblink;

答案 2 :(得分:0)

就我而言,问题是我使用的用户与我用来创建扩展的用户不同。

我使用运行该程序的同一用户解决了该问题 创建扩展数据库链接; 命令