怎么使用PostgreSQL contrib中的dblink插件
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章主要介绍"怎么使用PostgreSQL contrib中的dblink插件",在日常操作中,相信很多人在怎么使用PostgreSQL contrib中的dblink插件问题上存在疑惑,小编查阅
千家信息网最后更新 2025年11月14日怎么使用PostgreSQL contrib中的dblink插件
这篇文章主要介绍"怎么使用PostgreSQL contrib中的dblink插件",在日常操作中,相信很多人在怎么使用PostgreSQL contrib中的dblink插件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用PostgreSQL contrib中的dblink插件"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
该插件可用于连接远程PG数据库,看起来像是Oracle的DBLink.
安装
进入dblink目录,make & make install
[root@localhost contrib]# cd dblink/[root@localhost dblink]# lsdblink--1.0--1.1.sql dblink--1.1--1.2.sql dblink--1.2.sql dblink.c dblink.control dblink--unpackaged--1.0.sql expected input Makefile output pg_service.conf sql[root@localhost dblink]# [root@localhost dblink]# makemake -C ../../src/backend generated-headersmake[1]: Entering directory `/data/source/postgresql-12beta1/src/backend'make -C catalog distprep generated-header-symlinksmake[2]: Entering directory `/data/source/postgresql-12beta1/src/backend/catalog'make[2]: Nothing to be done for `distprep'.make[2]: Nothing to be done for `generated-header-symlinks'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/backend/catalog'make -C utils distprep generated-header-symlinksmake[2]: Entering directory `/data/source/postgresql-12beta1/src/backend/utils'make[2]: Nothing to be done for `distprep'.make[2]: Nothing to be done for `generated-header-symlinks'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/backend/utils'make[1]: Leaving directory `/data/source/postgresql-12beta1/src/backend'make -C ../../src/interfaces/libpq allmake[1]: Entering directory `/data/source/postgresql-12beta1/src/interfaces/libpq'make -C ../../../src/port allmake[2]: Entering directory `/data/source/postgresql-12beta1/src/port'make[2]: Nothing to be done for `all'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/port'make -C ../../../src/common allmake[2]: Entering directory `/data/source/postgresql-12beta1/src/common'make[2]: Nothing to be done for `all'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/common'make[1]: Leaving directory `/data/source/postgresql-12beta1/src/interfaces/libpq'gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -O0 -DOPTIMIZER_DEBUG -g3 -gdwarf-2 -fPIC -I../../src/interfaces/libpq -I. -I. -I../../src/include -D_GNU_SOURCE -I/usr/include/libxml2 -c -o dblink.o dblink.c -MMD -MP -MF .deps/dblink.Pogcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -O0 -DOPTIMIZER_DEBUG -g3 -gdwarf-2 -fPIC -shared -o dblink.so dblink.o -L../../src/port -L../../src/common -L../../src/interfaces/libpq -lpq -Wl,--as-needed -Wl,-rpath,'/appdb/xdb/pg12beta1/lib',--enable-new-dtags [root@localhost dblink]# make installmake -C ../../src/backend generated-headersmake[1]: Entering directory `/data/source/postgresql-12beta1/src/backend'make -C catalog distprep generated-header-symlinksmake[2]: Entering directory `/data/source/postgresql-12beta1/src/backend/catalog'make[2]: Nothing to be done for `distprep'.make[2]: Nothing to be done for `generated-header-symlinks'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/backend/catalog'make -C utils distprep generated-header-symlinksmake[2]: Entering directory `/data/source/postgresql-12beta1/src/backend/utils'make[2]: Nothing to be done for `distprep'.make[2]: Nothing to be done for `generated-header-symlinks'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/backend/utils'make[1]: Leaving directory `/data/source/postgresql-12beta1/src/backend'make -C ../../src/interfaces/libpq allmake[1]: Entering directory `/data/source/postgresql-12beta1/src/interfaces/libpq'make -C ../../../src/port allmake[2]: Entering directory `/data/source/postgresql-12beta1/src/port'make[2]: Nothing to be done for `all'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/port'make -C ../../../src/common allmake[2]: Entering directory `/data/source/postgresql-12beta1/src/common'make[2]: Nothing to be done for `all'.make[2]: Leaving directory `/data/source/postgresql-12beta1/src/common'make[1]: Leaving directory `/data/source/postgresql-12beta1/src/interfaces/libpq'/usr/bin/mkdir -p '/appdb/xdb/pg12beta1/lib/postgresql'/usr/bin/mkdir -p '/appdb/xdb/pg12beta1/share/postgresql/extension'/usr/bin/mkdir -p '/appdb/xdb/pg12beta1/share/postgresql/extension'/usr/bin/install -c -m 755 dblink.so '/appdb/xdb/pg12beta1/lib/postgresql/dblink.so'/usr/bin/install -c -m 644 ./dblink.control '/appdb/xdb/pg12beta1/share/postgresql/extension/'/usr/bin/install -c -m 644 ./dblink--1.2.sql ./dblink--1.1--1.2.sql ./dblink--1.0--1.1.sql ./dblink--unpackaged--1.0.sql '/appdb/xdb/pg12beta1/share/postgresql/extension/'[root@localhost dblink]#
简介
dblink可以让PG具备在远程数据库上执行查询的能力,其语法如下:
dblink(text connname, text sql [, bool fail_on_error]) returns setof recorddblink(text connstr, text sql [, bool fail_on_error]) returns setof recorddblink(text sql [, bool fail_on_error]) returns setof record
其中,输入参数:connname为连接名称,connstr是连接串,sql为查询语句,fail_on_error标记出现错误是否停止;输出参数是产生的行,Record类型.由于返回没有列信息,因此使用时需指定columns信息.
使用
远程PG数据库部署在26.26上,希望在PG中查询该26.26实例testdb数据库public模式下的t1表.
testdb=# select * from t1; id ---- 1(1 row)testdb=# \d+ t1 Table "public.t1" Column | Type | Collation | Nullable | Default | Storage | Stats target | Description --------+---------+-----------+----------+---------+---------+--------------+------------- id | integer | | | | plain | | testdb=# select * from t1; id ---- 1(1 row)
在本机执行以下查询:
testdb=# create extension dblink;CREATE EXTENSIONtestdb=# select t1.* from dblink('host=192.168.26.26 port=5432 dbname=testdb user=xdb','select * from t1') as t1(id int); id ---- 1(1 row)由于需要显式的指定的返回数据行的元数据,使用起来有些啰嗦.
到此,关于"怎么使用PostgreSQL contrib中的dblink插件"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数据
插件
数据库
学习
查询
信息
参数
更多
帮助
实用
接下来
于连
名称
实例
文章
方法
标记
模式
理论
目录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库图片怎么加日期
A9系统服务器
铁路局招软件开发专业技术岗
小程序cms数据库字段
数据库按字段分组降序
昆明服务器显卡供应商
数据库管理技术特征
数据库6.0计时器的做法
中国科技查新数据库
win7怎么关闭服务器
深圳壹加三网络技术公司
网络安全审查办法直播回放
计算机网络技术文章摘抄
新一代超级计算机采用什么服务器
网易如何玩国际服服务器
创建数据库及数据库中的表格
诺顿网络安全好用吗
游戏服务器 linux
app软件开发教程
b站漫游解析服务器制作
软件开发专业工作总结
手机软件开发的实战案例
网络安全绘画图片早安
数据库与安全吉林大学考试
r 里的鸢尾花数据库
什么是网络安全重保
九江网络安全海报
数据库深度设置
北京大学网络技术研究
如何看待360数据库