Oracle connect PostgreSQL through database link with UnixODBC
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中的表名