我已经习惯了Oracle,并在我的模式中创建了dblink,然后访问了这样的远程数据库:mytable@myremotedb,无论如何,PostgreSQL都可以这样做吗?现在,我正在像这样使用dblink:SELECT logindate FROM dblink('host=dev.toto.com user=toto password=isok dbname=totofamily', 'SELECT logindate FROM loginlog');当我执行此命令时,出现以下错误:提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。有人有主意吗?使用它们之前,我们是否必须“激活” dblink或执行某些操作?在我们要查询的远程数据库上有什么事情要做吗?我们也必须激活dblink吗?我一直有一个could not establish connection。这是行的类型:SELECT dblink_connect_u('host=x.x.x.x dbname=mydb user=root port=5432');IP地址正确,并且Postgres正在远程服务器上运行。任何的想法?
3 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
在PostgreSQL 9.1或更高版本中,简化了附加模块的安装。注册的扩展(包括dblink)可以通过以下方式安装CREATE EXTENSION:
CREATE EXTENSION dblink;
安装到默认架构中(public默认情况下)。search_path在运行命令之前,请确保已正确设置了您的设置,并且该模式对于所有需要使用该模式的用户都是可见的。
另外,您可以通过以下方式安装到您选择的任何模式:
CREATE EXTENSION dblink SCHEMA extensions;
看到:
在Postgres数据库的多个架构上安装hstore的最佳方法?
每个数据库运行一次。或在标准系统数据库中运行它,template1以将其自动添加到每个新创建的DB中。手册中的详细信息。
您需要首先在服务器上安装提供模块的文件。对于Debian及其衍生产品,显然是PostgreSQL 9.1 的软件包postgresql-contrib-9.1。
慕妹3242003
TA贡献1824条经验 获得超6个赞
在linux上,找到dblink.sql,然后在postgresql控制台中执行以下操作以创建所有必需的函数:
\i /usr/share/postgresql/8.4/contrib/dblink.sql
您可能需要安装contrib软件包: sudo apt-get install postgresql-contrib
添加回答
举报
0/150
提交
取消