暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

人大金仓数据库dblink扩展的使用

原创 数据猿 2023-12-27
904


金仓数据库dblink扩展的使用

关键字:

dblink、外部表、kingbaseES、oracle 、人大金仓、KingbaseES

dblink介绍

dblink是KingbaseES的一个扩展插件,支持在一个数据库会话中连接到其它KingbaseES数据库模块,其功能同kingbase_fdw相同。

dblink的使用步骤

使用dblink主要包括以下步骤:

  1. 加载dblink插件;
  2. 建立一个到远程KES数据库的持久连接,dblink_connect()或dblink_connect_u();
  3. 进行SQL操作;dblink()可执行SELECT语句,dblink_exec()可执行DML语句;
  4. 关闭到远程数据的持久连接dblink_disconnect()。

dblink使用展示

dblink插件提供了诸多的接口供用户使用,本文先简单介绍dblink插件的基本使用,展示使用dblink访问其它KingbaseES数据库的基本用法。dblink使用时,需要被连接的远程KES数据库用户使用密码登录。

  1. KES中加载dblink插件

同其它插件的加载方式相同,使用create extension语句加载dblink插件:

create extension dblink;

执行完成后,可输入 \dx查看插件是否加载成功。

  1. 建立一个连接

提供了两个接口用于建立一个远程数据库的持久连接,主动关闭或会话结束关闭

  • dblink_connect()

dblink_connect(text connstr) return text

dblink_connect(text connname, text connstr) return text

  • dblink_connect_u()

dblink_connect_u(text connstr) return text

dblink_connect_u(text connname, text connstr) return text

dblink_connect() 和 dblink_connect_u()功能基本相同,前者只允许超级用户创建无口令认证连接,后者则可允许任意用户创建无口令认证连接。

参数介绍:

  • connname:连接的名字,赋予建立的连接一个名称;当该参数被忽略时,会建立一个未命名的连接并替换掉任何现有的未命名连接,dblink只允许同时存在一个未命名连接,考虑到后续使用,推荐不忽略该参数。
  • connstr:有两种选择。
    • libpq风格的连接信息串,例如hostaddr=127.0.0.1 port=55553 dbname=test user=u01 password=u01;
    • 外部服务器的名称,外部服务器推荐使用外部数据包装器dblink_fdw,以及create server和create user mapping创建的外部服务器。

  1. 使用dblink访问其它KES数据库
  • dblink()执行一个查询语句(SELECT语句或者任何返回行的语句)

dblink(text connname, text sql [, bool fail_on_error])

return 结果集

dblink(text connstr, text sql [, bool fail_on_error])

return 结果集

dblink(text sql [, bool fail_on_error])

return 结果集

  • dblink_exec()执行DML语句

dblink_exec(text connname, text sql [, bool fail_on_error])

return text

dblink_exec(text connstr, text sql [, bool fail_on_error])

return text

dblink_exec(text sql [, bool fail_on_error])

return text

参数介绍:

  • connname:dblink_connect()建立的连接的名称,当忽略该选项时,使用已存在的未命名连接。
  • connstr:同dblink_connect()中一样,可以是libpg风格的连接信息串,也可以是已创建的外部服务器。
  • sql:希望在远程数据库中执行的SQL语句。
  • fail_on_error:默认为真,连接的远程端抛出的错误也会导致本地抛出错误;如果为假,远程错误只在本地被报告为一个NOTICE,并且该函数的返回值被设置为ERROR。

  1. 关闭dblink建立的远程连接

可以调用dblink_disconnect()函数关闭,也可以退出当前会话自动关闭。

dblink_disconnect() return text

dblink_disconnect(test connname) return text

  • dblink_disconnect():关闭一个之前被打开的未命名连接;
  • dblink_disconnect(test connname):指定关闭已命名的连接。

参考资料

KingbaseES产品手册

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论