PostgreSQL之oracle_fdw安装与使用

目的介绍

现在项目开发遇到一个问题,就是需要从PostgreSQL中访问Oracle数据库

身为渣渣猿一脸懵逼。于是乎请教了公司的数据库方面的大牛韩工。告诉我用oracle_fdw 可以实现,但是在实现安装的过程中,还是各种问题,又麻烦韩工帮我看了好久。很不好意思,现在 针对这次安装的过程进行记录下,因为部署的时候还要用到

安装oracle_fdw

1.下载oracle_fdw

点击github下载。注意,你要下载和你postgresql版本项目的安装包。我就是下载的不一样的导致这里找了好久。

注意:我这里用的是oracle_fdw-2.0.0.这个版本,之前下了个2.1.0结果不可以

image

2.将文件移动到pg安装路径下

下载完成将zip包解压,把【lib】文件夹的oracle_fdw.dll和【share/extension】目录下的三个文件分别复制到PostgreSQL安装目录下的【lib】文件夹和【share/extension】目录里去。

-- 创建oracle_fdw
create extension oracle_fdw;
-- 语句能查询到oracle_fdw extension,如下图
 select * from pg_available_extensions;
 

image

3.通过oracle_fdw访问oracle

--创建访问oracle的连接
create server oracle foreign data wrapper oracle_fdw options(dbserver '127.0.0.1:1521/orcl');
--授予zhazha用户访问权限
grant usage on foreign server oracle to zhazha;
--创建到oracle的映射
create user mapping for zhazha server oracle options(user 'SCOTT',password 'tiger');
--创建需要访问的oracle中对应表的结构
create foreign table emptest(
EMPNO NUMBER(4),
ENAME VARCHAR(10),
JOB VARCHAR(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
) server oracle options(schema 'SCOTT',table 'EMP');
--在pg中访问oracle的表
select * from emptest;

下面粘贴我查询出的

image

4.其他操作

-- 查询已创建的到oracle的连接

SELECT * from pg_user_mappings;

-- 删除创建的对象

drop foreign table emptest;
drop user mapping for highgo server oracle;
drop server oracle;

参考:
[1]:https://blog.csdn.net/ljinxin/article/details/77772587
[2]:https://blog.csdn.net/pg_hgdb/article/details/81700898

posted @ 2018-08-27 19:09  Kevin_zheng  阅读(6557)  评论(1编辑  收藏  举报