微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL DBLink:没有函数匹配给定的名称和参数类型

我正在玩DBLINK,我想尝试一下.所以我运行这个简单的查询

CREATE EXTENSION dblink;

SELECT *  
FROM dblink(('dbname=genesis_admin')::text,('SELECT * FROM user_account')::text);

然后让我惊讶

[WARNING  ] CREATE EXTENSION dblink
            ERROR:  extension "dblink" already exists
[WARNING  ] SELECT *  FROM dblink(('dbname=genesis_admin')::text,('SELECT * FROM user_account')::text)
            ERROR:  function dblink(text,text) does not exist
            LINE 1: SELECT *  FROM dblink(('dbname=genesis_admin')::text,('SELE...
                                   ^
            HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

如果它已经存在,它怎么能不存在?

解决方法

我遇到了同样的错误,原因是这是因为DBLink在公共模式中安装(认情况下),并且您可能已经将search_path修改为不包含public的列表.数据库虽然包含函数DBlink(text,text)因此无法找到该函数.

要使其工作,您需要将特定架构添加到DBlink函数调用.

SELECT public.dblink(xxx,yyy);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐