1.1、安装oracle客户端

我这里使用的是pg的操作系统用户安装,也可以使用root用户安装(但是要设置pg用户的环境变量)

pg12@oracle-> tar -zxvf instantclient_11_2.tar.gz

pg12@oracle-> mv instantclient_11_2/ instantclient/

pg12@oracle-> cd instantclient

https://www.cndba.cn/foucus/article/3736

—设置环境变量

export ORACLE_HOME=/opt/oracle/instantclient

export OCI_LIB_DIR=$ORACLE_HOME

export OCI_INC_DIR=$ORACLE_HOME/sdk/include

https://www.cndba.cn/foucus/article/3736

—保存退出,试环境变量生效

source /etc/profilehttps://www.cndba.cn/foucus/article/3736

1.2、解压oracle_fdw

pg12@oracle-> unzip oracle_fdw-2.2.0.zip

pg12@oracle-> cd oracle_fdw-2.2.0

—编译

pg12@oracle->make

—安装

pg12@oracle-> make install

2、创建oracle_fdw扩展

bill=# create extension oracle_fdw;

CREATE EXTENSIONhttps://www.cndba.cn/foucus/article/3736

这一步可能会出现类似这样的错误:

bill=# create extension oracle_fdw;

ERROR: could not load library “/home/pg12/pgsql12.4/lib/oracle_fdw.so”: libclntsh.so: cannot open shared object file: No such file or directory

在ORACLE_HOME下找到对应的so文件,然后建立软连接(注意:这里要使用绝对路径)

pg12@oracle-> ln -s /home/pg12/instantclient/lib/libclntsh.so /home/pg12/pgsql12.4/lib/libclntsh.sohttps://www.cndba.cn/foucus/article/3736

然后再次创建,如果还是提示缺少so文件,重复上述操作,基本就不会有问题了。https://www.cndba.cn/foucus/article/3736

3、使用oracle_fdw

bill=# CREATE SERVER oradb_bill FOREIGN DATA WRAPPER oracle_fdw

OPTIONS (dbserver 'oradb');

bill=# create user mapping for bill server oradb_bill options(user 'orauser',password 'orapwd');

bill=# GRANT USAGE ON FOREIGN SERVER oradb_bill TO bill;

bill=# create foreign table fdw_test1(

id int,

info varchar(10)

) server oradb_bill options(schema 'orauser',table 'TEST1');

注意create server里面使用的’oradb’需要先在oracle客户端的tnsnames文件里面先配置好。

然后就可以查看oracle中对应表的数据了

https://www.cndba.cn/foucus/article/3736

https://www.cndba.cn/foucus/article/3736

bill=# select * from fdw_test1 ;

id | info

----+------

1 | bill

(1 row)

同样也支持增删改查操作:

—pg中插入数据https://www.cndba.cn/foucus/article/3736

bill=# insert into fdw_test1 values(2,'aaa');

INSERT 0 1

—oracle中查看

SQL> select * from test1;

ID INFO

---------- ----------

1 bill

2 aaa

版权声明:本文为博主原创文章,未经博主允许不得转载。

PostgreSQL oracle

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐