kingbase 跨库

文章目录

说明

由于公司项目有国产化需求,但项目中部分功能需要对oracle 中的数据进行查询整合所以有了跨库连接这一需求。

操作

网上找的时候并没有找到对应的压缩包,该压缩包是向金仓的工程师要的。
在这里插入图片描述
压缩包解压后如图所示有lib 和 share 两个目录将里面的文件对应放到kingbase的对应目录中安装就完成了
在这里插入图片描述
因为我使用的是arm 架构的系统部署时的数据库对应的安装目录如下所示
在这里插入图片描述
找不到的大家可以用find 命令进行查找如下

find / -name "share" 

使用的话如下面代码

-- 将插件oracle_fdw添加
CREATE EXTENSION oracle_fdw;
-- 创建服务 
CREATE SERVER  oracle(服务名自定义后面会用到) FOREIGN DATA 
WRAPPER oracle_fdw OPTIONS 
(dbserver '//127.0.0.1:1521/orcl', isolation_level 'read_committed');
-- 将服务的使用权限给到用户
grant usage on foreign server oracle to test;
-- 添加用户映射
CREATE USER MAPPING FOR PUBLIC SERVER oracle 
OPTIONS (user 'username', password 'password');
-- 创建外部表 表名前可带模式名方便后期调用
-- 注意table后面的表名需要一致,若不一致会报错
CREATE FOREIGN TABLE test.typetest1 
(
column1 dataType,
column2 dataType,
...) 
SERVER oracle OPTIONS (table 'tableTest');

创建后对应查看是否创建成功的语句如下

-- 查询服务
select * from pg_foreign_server where srvname='oracle';
-- 查询用户映射
select * from pg_user_mappings where srvname='oracle';
-- 查询外部表 注意下列表为oracle中的表名,自身创建的暂未找到
-- 所以请有良好的命名习惯不然连表都找不到 (O(∩_∩)O哈哈~)
SELECT * FROM sys_foreign_table

性能

性能来说小数据量查询能够勉强使用
例如

-- 拿上述表名做例子
select * from test.typetest1 limit 0,100;

该查询会接近一秒,没有进行过压力测试。有需求的自行测试。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值