oracle编译安装路径,PostgreSQL编译安装oracle_fdw

本文是 oracle_fdw 编译安装,以及简单使用教程。

1、下载Oracle客户端

网址:https://www.oracle.com/database/technologies/instant-client/downloads.html

根据自己的平台,下载 basic 和 sdk 两个包就可以,为了便于测试,建议下载 sqlplus。

最新版本是 19.3,我使用的是较旧版本 18.1,三个文件:instantclient-basic-macos.x64-18.1.0.0.0.zip

instantclient-sdk-macos.x64-18.1.0.0.0-2.zip

instantclient-sqlplus-macos.x64-18.1.0.0.0.zip

2、解压缩并设置环境变量

放到同一个目录下,注意不要错放子目录,目录内容:libclntsh.dylib(软链接)

libocci.dylib(软链接)

network(目录)

sdk(目录)

...

xstreams.jar

一共24项

这里要设置我们熟知的环境变量ORACLE_HOMEexport ORACLE_HOME==/Users/quanzl/instantclient_18_1

3、用PG源代码编译

进入源代码下的 contrib 目录git clone https://github.com/laurenz/oracle_fdw.git

cd oracle_fdw

make NO_PGXS=1

make install

4、使用二进制PG编译

首先要能够找到 pg_config,将其所在目录设置到 PATH 中export PATH=$PATH:/.../pgsql/bin

克隆代码后直接在 oracle_fdw 下,make即可。

5、设置数据库运行环境变量

此时直接启动数据库可能会提示无法加载 oracle_fdw.so,因为它找不到 oracle 动态库。ERROR:  could not load library "/.../lib/postgresql/oracle_fdw.so": dlopen(/.../lib/postgresql/oracle_fdw.so, 10): Library not loaded: @rpath/libclntsh.dylib.18.1Referenced from: .../lib/postgresql/oracle_fdw.soReason: image not found

设置库路径(Linux下是 LD_LIBRARY_PATH )export DYLD_LIBRARY_PATH=/Users/quanzl/instantclient_18_1

6、测试Oracle服务cd Users/quanzl/instantclient_18_1

./sqlplus scott/tiger@192.168.x.x/服务名

SQL*Plus几十年如一日的难用,建议使用其他工具。

7、创建服务器和用户映射CREATE SERVER oracle_svr FOREIGN DATA WRAPPER oracle_fdw

OPTIONS (dbserver '192.168.x.x/服务名');

CREATE USER MAPPING FOR PUBLIC SERVER oracle_svr

OPTIONS (user 'scott', password 'tiger');

8、建外部表测试数据CREATE FOREIGN TABLE dept(

deptno smallint,

dname text,

loc text)

SERVER oracle_svr

OPTIONS (table 'DEPT');

这里要注意,选项 table 大小写必须与Oracle对应表名严格一致。

请参考:https://github.com/laurenz/oracle_fdw

本期没有代码,下期一定有,我们将尝试解决一个现有问题。

欢迎关注我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值