下载插件
官方地址:http://pgxn.org/dist/oracle_fdw/ ,根据PostgreSQL版本选择
下载oracle客户端
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
需要下载Basic Package,Tools - optional packages,SDK Package,SQL*Plus Package,ODBC Package
共同安装客户端
修改centos用户环境变量
export PATH
export MYSQL_HOME=/app/mysql
export ORACLE_HOME=/app/instantclient_21_8
export ANACONDA_HOME=/app/anaconda3
export PGHOME=/app/postgresql
export PGUSER=postgres
export PGPORT=5432
export PGDATA=/app/postgresql/data
export PGLOG=/app/postgresql/log/postgresql.log
# PGHOST 需要与unix_socket_directories对应
export PGHOST=/app/postgresql/data/tmp
export PATH=$ANACONDA_HOME/bin:$MYSQL_HOME/bin:$PGHOME/bin:$PATH:$HOME/bin:$ORACLE_HOME
export LD_LIBRARY_PATH=$ANACONDA_HOME/lib:$MYSQL_HOME/lib:$PGHOME/lib:$ORACLE_HOME:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export OCI_INC_DIR=$ORACLE_HOME/sdk/include
安装插件并重新启动数据库
make USE_PGXS=1
make USE_PGXS=1 install
ln -s /app/instantclient_21_8/libclntsh.so.21.1 /app/postgresql/lib/
/app/postgresql/bin/pg_ctl -D /app/postgresql/data -l /app/postgresql/log/logfile restart
使用
# 哪个库用 哪个库执行
create extension oracle_fdw;
CREATE SERVER dams_server FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver '11.0.9.14:1521/a');
CREATE USER MAPPING FOR PUBLIC SERVER dams_server OPTIONS (username 'a', password 'a');
CREATE USER MAPPING FOR PUBLIC SERVER dams_server OPTIONS (user 'a', password 'a');
create foreign table dataaly.a(a varchar(40),b varchar(40),c varchar(10)) server dams_server options(schema 'a',table 'a');