postgresql中oracle_fdw应用

来源:互联网 发布:ghost系统备份软件 编辑:程序博客网 时间:2024/05/17 14:27

一 环境

os:  win764位
postgresql9.3 64位

二  oracle_fdw安装部署

2.1 下载地址

https://github.com/laurenz/oracle_fdw/releases/tag/ORACLE_FDW_1_1_0

选择自己合适的版本下载,然后解压。

2.2 部署


左图是解压后的文件,将文件夹内文件复制到postgresql安装指定目录中。

在postgresql控制台中输入
create extension oracle_fdw;


部署成功!

三 postgresql应用配置

3.1 创建server

打开$ORACLE_HOME/network/admin/tnsnames.ora,内容如下:
orcl=  (DESCRIPTION =    (ADDRESS_LIST =        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))    )    (CONNECT_DATA =      (sid = orcl)      (SERVER = DEDICATED)    )  )
先用oracle的客户端如pl/sql登陆下,登陆正常进行下一步。
create server oradb foreign data wrapper oracle_fdw options(dbserver 'orcl');

oradb是server的名称,'orcl'指向tnsnames.ora中配置的实例名。

3.2 授予用户权限

grant usage on foreign server oradb to postgres;

将刚创建的服务oradb授予权限于postgresql用户postgres。

3.3 数据库同步

create user mapping for postgres server oradb options(user 'nk_sygis',password 'nk_sygis');

postgres用户下服务oradb连接oracle数据库。

四 应用

4.1 建立foreign table

选择oracle中一个有数据的表,先查看结构和数据。


根据oracle中的表,在postgresql中创建同结构的foreign table的sql语句如下:
CREATE FOREIGN TABLE T_NKGIS_ROAD_foreign(  dl_mc varchar(200),  dl_dm varchar(100)) server oradb options(schema 'NK_SYGIS',table 'T_NKGIS_ROAD');

schema:写oracle中的schema,table是同步的oracle中的表名称。






4.2 查询

在postgresql的sql中执行以下语句:
select * from T_NKGIS_ROAD_foreign;

结果如下图



很清楚,和我们oracle中看到的一模一样。

五 扩展


访问的oracle表,可以postgresql中的表进行join,order by。。。甚至增删改查。
这样,使用postgis和oracle的业务关联,完美的gis解决方案。


0 0
原创粉丝点击