如何在PostgreSQL中使用(安装)dblink?

我已经习惯了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正在远程服务器上运行。任何的想法?


繁星淼淼
浏览 3157回答 3
3回答

30秒到达战场

在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

在linux上,找到dblink.sql,然后在postgresql控制台中执行以下操作以创建所有必需的函数:\i /usr/share/postgresql/8.4/contrib/dblink.sql 您可能需要安装contrib软件包: sudo apt-get install postgresql-contrib
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Oracle
MySQL