当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《如何在PostgreSQL中使用(安装)dblink?》经验,为你挑选了3个好方法。

我已经习惯了Oracle并在我的架构中创建了一个dblink,然后访问了这样一个远程数据库:mytable@myremotedb那么对于PostgreSQL有没有相同的做法?

现在我正在使用这样的dblink:

SELECT logindate FROM dblink('host=dev.toto.com
                              user=toto
                              password=isok
                              dbname=totofamily', 'SELECT logindate FROM loginlog');

当我执行此命令时,我收到以下错误:

提示:没有函数匹配给定的名称和参数类型.您可能需要添加显式类型转换.

有人有想法吗?我们是否必须"激活"dblinks或在使用它们之前做些什么?

我们要查询的远程数据库有什么问题吗?我们还要激活dblink吗?我一直都有could not establish connection.这是行类型:

SELECT dblink_connect_u('host=x.x.x.x dbname=mydb user=root port=5432');

IP地址正确,Postgres正在远程服务器上运行.任何的想法?



1> Erwin Brands..:

使用PostgreSQL 9.1或更高版本,可以简化其他模块的安装.已注册的扩展(包括dblink)可以安装CREATE EXTENSION:

CREATE EXTENSION dblink;

安装到默认架构中(public默认情况下).search_path在运行命令之前,请确保已正确设置,并且所有必须使用该模式的用户都可以看到该模式.

或者,您可以安装到您选择的任何架构:

CREATE EXTENSION dblink SCHEMA extensions;

看到:

在Postgres数据库中的多个模式上安装hstore的最佳方法?

每个数据库运行一次.或者在标准系统数据库中运行它以自动template1将其添加到每个新创建的数据库中.手册中的详细信息.

您需要首先在服务器上安装提供模块的文件.对于Debian和衍生产品来说,这显然是对postgreSQL 9.1的postgresql-contrib-9.1软件包.



2> Anvesh..:

我正在使用DBLINK连接内部数据库以进行跨数据库查询.

参考本文.

安装DbLink扩展.

CREATE EXTENSION dblink;

验证DbLink:

SELECT pg_namespace.nspname, pg_proc.proname 
FROM pg_proc, pg_namespace 
WHERE pg_proc.pronamespace=pg_namespace.oid 
   AND pg_proc.proname LIKE '%dblink%';

测试数据库的连接:

SELECT dblink_connect('host=localhost user=postgres password=enjoy dbname=postgres');



3> evgeni..:

在linux上,找到dblink.sql,然后在postgresql控制台中执行类似这样的操作来创建所有必需的函数:

\i /usr/share/postgresql/8.4/contrib/dblink.sql 

您可能需要安装contrib包: sudo apt-get install postgresql-contrib

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有