Oracle_fdw
2021/6/4 2:30:22
本文主要是介绍Oracle_fdw,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文以例子的形式介绍 Kingbase (Postgresql)数据库如何通过 oracle_fdw 扩展访问Oracle数据库。以下例子在PG12.3 与 Kingbase V8R6进行过实际验证。
一、准备数据
1、Oracle端
IP:192.168.237.42, SID:SOGG ,数据库用户:user01 / user01
SQL> create table t1(id integer,name char(9));
2、Kingbase端
IP:192.168.237.43
create role user_ora with login password 'user_ora';
create schema user_ora authorization user_ora;
二、安装配置
1、安装fdw
解压安装包,将相关的文件拷贝到对应的 share , lib 目录。注意:要确认安装包是否包含 libclntsh.so 文件,如果没有,需要从oracle 安装路径拷贝。
2、创建扩展
create extension oracle_fdw; create server to_ora42 foreign data wrapper oracle_fdw options(dbserver '//192.168.237.42:1521/SOGG'); grant usage on foreign server to_ora42 to user_ora; create user mapping for user_ora server to_ora42 options(user 'user01',password 'user01');
server与mapping 创建后,在pg_foreign_server 和pg_user_mappings 会有相应条目
test=# select * from pg_foreign_server where srvname='to_ora42'; oid | srvname | srvowner | srvfdw | srvtype | srvversion | srvacl | srvoptions -------+----------+----------+--------+---------+------------+--------+--------------------------------------- 16552 | to_ora42 | 10 | 16549 | | | | {dbserver=//192.168.237.42:1521/SOGG} test=# select * from pg_user_mappings where srvname='to_ora42'; umid | srvid | srvname | umuser | usename | umoptions -------+-------+----------+--------+----------+------------------------------- 16553 | 16552 | to_ora42 | 16550 | user_ora | {user=user01,password=user01} (1 row)
3、外部表
create foreign table ft_t1(id integer,name char(9)) server to_ora42 options(schema 'USER01', table 'T1');
注意:这里的 'USER01' 和 'T1' 都是大写的,与Oracle 数据字典的信息大小写一致。否则在访问时会有如下问题:
test=> create foreign table ft_t1(id integer,name char(9)) server to_ora42 options(schema 'USER01', table 't1'); CREATE FOREIGN TABLE test=> select * from ft_t1; ERROR: Oracle table "USER01"."t1" for foreign table "ft_t1" does not exist or does not allow read access DETAIL: ORA-00942: table or view does not exist HINT: Oracle table names are case sensitive (normally all uppercase).
三、可以手动创建wrapper
create extension 后,pg_foreign_data_wrapper 就有 oracle_fdw , fdwoptions 为空。在 fdwoptions 可以指定些选项,比如字符集。
create foreign data wrapper oracle_fdw_1 handler oracle_fdw_handler validator oracle_fdw_validator options (nls_lang 'AMERICAN_AMERICA.ZHS16GBK');
这篇关于Oracle_fdw的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享