postgresql中oracle_fdw应用

一 环境

os:  win764位
postgresql9.3 64位

二  oracle_fdw安装部署

2.1 下载地址


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

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解决方案。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值