Oracle_FDW 使用介绍
本文以例子的形式介绍 KingbaseES(Postgresql)数据库如何通过 oracle_fdw 扩展访问Oracle数据库。以下例子在PG12.3 与 KingbaseES V8R6进行过实际验证。
一、准备数据
1、Oracle端
IP:192.168.237.42, SID:SOGG ,数据库用户:user01 / user01
SQL> create table t1(id integer,name char(9));
2、KingbaseES 端
IP:192.168.237.43
create role user_ora with login password 'user_ora';
create schema user_ora authorization user_ora;
二、安装配置
1、安装fdw
将官方提供的oracle_fdw包解压,将解压后相关的文件拷贝到对应的 share , lib 目录。注意:要确认安装包是否包含 libclntsh.so 文件,如果没有,需要从oracle 安装路径拷贝,或者安装instantclient。
2、创建扩展
oracle_fdw 包安装后,查 sys_available_extensions 可以看到 oracle_fdw extension。
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 为空。默认的wrapper 可能不能使用,可以新建wrapper,在 fdwoptions 可以指定些选项,比如字符集。
create foreign data wrapper oracle_fdw_1 handler oracle_fdw_handler validator oracle_fdw_validator options (nls_lang 'AMERICAN_AMERICA.ZHS16GBK');
Oracle_FDW 使用介绍的更多相关文章
- PostgreSQL之oracle_fdw安装与使用
目的介绍 现在项目开发遇到一个问题,就是需要从PostgreSQL中访问Oracle数据库 身为渣渣猿一脸懵逼.于是乎请教了公司的数据库方面的大牛韩工.告诉我用oracle_fdw 可以实现,但是在实 ...
- oracle_fdw的安装和使用
1.下载instant oracle client 下载网址:https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html ...
- KDB_Database_Link 使用介绍
kdb_database_link 是 KingbaseES 为了兼容oracle 语法而开发的跨数据库访问扩展,可用于访问KingbaseES, Postgresql , Oracle .以下分别介 ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- HTML DOM 介绍
本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...
随机推荐
- HDLBits->Circuits->Arithmetic Circuitd->3-bit binary adder
Verilog实例数组 对于一个定义好的简单module,例如加法器之类,如果我们要对其进行几十次几百次的例化,并且这些例化基本都是相同的形式,那么我们肯定不能一个个的单独对其进行例化,此时我们就可以 ...
- 使用Playbook批量部署多台LAMP环境
1. 安装ansible yum install epel-release -y yum install ansible -y Playbook是一个不同于使用ansible命令行执行方式的模式,功能 ...
- python写个前端,这不是轻轻松松~
前端除了用js++css+html,还有没有其它办法?其实python也可以 1. 安装与基本流程 Python学习交流Q群:660193417### 安装 PyWebIO 和其他的第三方库一样使用p ...
- Tapdata 与阿里云 PolarDB 开源数据库社区联合共建开放数据技术生态
近日,阿里云 PolarDB 开源数据库社区宣布将与 Tapdata 联合共建开放数据技术生态.在此之际,一直专注实时数据服务平台的 Tapdata ,也宣布开源其数据源开发框架--PDK(Plu ...
- 【cartogarpher_ros】二: 官方Demo的介绍与演示
上一节我们介绍了在linux中快速安装集成ros环境的cartographer. 本节我们会来跑一些官方demo,用于测试cartographer是否正确安装,顺便看看cartographer的建图与 ...
- 2019 CSP-J 初赛解析
题面,成绩不是真实水平,就挑重点说一说 老师给的解析 T5 这是二分查找,属于是我的代码理解不太对 我的理解 #include<iostream> using namespace std; ...
- shell脚本三剑客:grep、sed、awk
shell脚本三剑客:grep sed awk grep语法: grep [OPTIONS] PATTERN [FILE] 常用选项 -c 统计匹配到的 ...
- WPF 实现用户头像选择器
制作一个用户头像选择器仿 WeGame 制作一个用户头像选择Canvas为父控件所实现,展示图片使用Image,Path当作上方的蒙版; Canvas:主要用途方便移动Image,设置ClipToBo ...
- 两个比较好用的JS方法,用来处理树形结构!
一.平级结构转树形结构 /** * 平级结构转树形结构 * * 示例:const jsonDataTree = listTransToTreeData(jsonData, 'id', 'pid', ' ...
- 一个小 Trick
平方变两次 一个状态 \(S\) 有一个贡献,所有状态 \(S\) 组成集合 \(U\) . 然后我们要统计下面这个东西 \[ans=\sum_{S\in U}f^2(S) \] 然后我们就可以看作是 ...