重庆思庄oracle技术分享-oracle11g 通过DBLINK访问PG13 中数据

具体步骤如下:

1.安装 unixODBC,postgresql13-odbc
root用户执行:

yum install -y https://download.postgresql.org/ ... o-latest.noarch.rpm
yum install -y unixODBC.x86_64
yum - y install postgresql13-odbc.x86_64
unlink /usr/lib64/libpq.so.5
ln -s /usr/pgsql-13/lib/libpq.so.5.13 /usr/lib64/libpq.so.5

2.修改文件/etc/odbcinst.ini,将Driver改成pg13的

[PostgreSQL]
Description     = ODBC for PostgreSQL
Driver          = /usr/pgsql-13/lib/psqlodbcw.so
Setup           = /usr/lib/libodbcpsqlS.so
Driver64        = /usr/pgsql-13/lib/psqlodbcw.so
Setup64         = /usr/lib64/libodbcpsqlS.so
FileUsage       = 1

3.创建文件/etc/odbc.ini

[PG]
Description         = PostgreSQL connection to SallyDB
Driver              = PostgreSQL
Database            =zltj
Servername          =1.1.8.96
UserName            =postgres
Password            =zltj2021
Port                = 5432
UseDeclareFetch     = 1
CommLog             = /tmp/pgodbclink.log
Protocol            =12.8
ReadOnly            =No
RowVersioning       =yes
ShowSystemTables    =YES
ShowOidColumn       =yes
FakeOidIndex        =yes
ConnSettings = set client_encoding to gbk
Debug = 0
LowerCaseIdentifier = 1


4.测试连接:

isql -v pg
+---------------------------------------+
Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>help     -- 会把POSTGRES用户下的所有表列出来


oracle用户执行下面的步骤:

创建文件~/.odbc.ini


5.创建监听
  在文件 /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora 中追加:

SID_LIST_LISTENER =
  (SID_LIST =
   (SID_DESC=
      (SID_NAME=PG)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
         (ENV="LD_LIBRARY_PATH=/usr/pgsql-13/lib/:/lib64:/usr/lib64/:/u01/app/oracle/product/11.2.0/db_1/lib")
         (PROGRAM=dg4odbc)
    )
  )

6.配置tnsnames.ora文件
在文件 /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora 中追加如下内容:

PG =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=hisdb01)(PORT=1521))
    (CONNECT_DATA=(SID=PG))
    (HS=OK)
  )


7.配置透明网关
创建文件: /u01/app/oracle/product/11.2.0/db_1/hs/admin/initPG.ora

HS_FDS_CONNECT_INFO = PG
HS_FDS_TRACE_LEVEL = 255
HS_FDS_SHAREABLE_NAME=/usr/pgsql-13/lib/psqlodbcw.so
HS_NLS_NCHAR=UCS2
HS_LANGUAGE=AMERICAN_AMERICA.zhs16gbk
HS_KEEP_REMTE_COLUMN_SIZE=ALL
HS_FDS_DEFAULT_SCHEMA_NAME = public
set ODBCINI=/etc/odbc.ini


8.创建dblink


create public database link to_pglink connect to "postgres" identified by "zltj2021" using 'PG';

9.使用DBLINK连接访问PG

select count(*) from "drcs"@to_pglink;
  COUNT(*)
----------
      3079

10.使用同义词访问:

create or replace synonym drcs  for "drcs"@to_pglink;
select count(*) from drcs;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值