Oracle和PostgreSQL 共存

 

使用dbi-link在PG里访问异构数据库

 

Oracle connect PostgreSQL through database link with UnixODBC

 

CREATE [PUBLIC] DATABASE LINK

 

Oracle通用连接(Generic Connectivity)Postgresql

 

测试环境:

OS:winxp-sp3

DB:oracle10g

    Postgresql8.3

步骤:

1.在本机安装Postgresql for odbc驱动

2.在ODBC中创建名为名为ora2pg的postgresql连接

3.在ORACLE_HOME\HS\ADMIN中创建文件initora2pg.ini文件,内容为:
HS_FDS_CONNECT_INFO = ora2pg     (此处ora2pg为ODBC中的连接名)
HS_FDS_TRACE_LEVEL = 0

4.配置tnsnames.ora,它位于ORACLE_HOME\NETWORK\ADMIN
填加如下代码:
pg =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = ora2pg))      #此处为文件initora2pg.ini中的ora2pg

      (hs=OK)            #打开hs服务选项
    )

5.配置listener.ora,它位于ORACLE_HOME\NETWORK\ADMIN。

在这个文件中增加如下代码:
SID_LIST_LISTENER =
(SID_LIST =
     (SID_DESC =
      (SID_NAME = ora2pg)               #此处为文件initora2pg.ini中的ora2pg,此处名称要与tnsnmaes中的名称一致
      (ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
      (PROGRAM = hsodbc)               #要使用的HS服务程序,如果使用OLE DB,程序名为hsole
    )
)

6.重新启动oracle listener

7.在oracle中创建DATABASE LINK
create database link "ora2pg" connect to "test" identified by "test" using 'pg'; --此处test为postgresql的登录名和密码

8.测试dblink

select * from "test"@ora2pg ;    --此处test为postgresql中的表名

 

你可能感兴趣的:(PostgreSQL)