以下的例子,要通过ORACLE通用连接,建立三个ORACLE的DATABASELINK,分别用于访问

SQL2000服务器的ET2000,OFSS2000和BK2000数据库.

1.在ORACLE服务器上,新建三个ODBC系统数据源,名称分别为ET2000,OFSS2000,BK2000;

三个数据源都访问目标的SQLSERVER实例,不同之处仅在与默认连接的数据不同.

2.在ORACLE服务器上,ORACLE安装目录(本例中是D:\oracle\product\10.2.0\db_1\)的hs\admin目录下,参照inithsodbc.ora

创建initET2000.ora

参数配置如下:其中ET2000是默认连接ET2000数据库的ODBC系统数据源名称

HS_FDS_CONNECT_INFO = ET2000

HS_FDS_TRACE_LEVEL = 0

类似地,创建initOFSS2000.ora和initBK2000

3.在ORACLE服务器上,ORACLE安装目录(本例中是D:\oracle\product\10.2.0\db_1\)的NETWORK\ADMIN目录下,修改tnsname.ora

增加

ET2000 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.180)(PORT = 1521)))

(CONNECT_DATA =

(SID = ET2000)

)

(HS=OK)

)

类似的,增加OFSS2000和BK2000的配置段

4.在ORACLE服务器上,ORACLE安装目录(本例中是D:\oracle\product\10.2.0\db_1\)的NETWORK\ADMIN目录下,修改listener.ora

在这个段中,增加SID_DESC的配置

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = ET2000)

(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)

(PROGRAM = hsodbc)

)

(SID_DESC =

(SID_NAME = OFSS2000)

(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)

(PROGRAM = hsodbc)

)

(SID_DESC =

(SID_NAME = BK2000)

(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)

(PROGRAM = hsodbc)

)

)

5.重启ORACLE服务器TNS服务

6.创建ORACLE的DATABASELINK对象ET2000.

CREATE PUBLIC DATABASE LINK ET2000

CONNECT TO "sa"         (user)

IDENTIFIED BY "000000"  (password)

USING 'ET2000'          (tns || DBNAME)

/

类似的建立DATABASELINK OFSS2000和BK2000. 这里用sa用户连接,一般倒数据时用一个有SELECT所有表权限的用户就可以了

7.现在就可以使用DATABASELINK通过ORACLE客户端访问SQL数据库了,例如:

SELECT * FROM "tKHXX"@ET2000 访问ET2000库的tKHXX表

SELECT * FROM "tOF_JJZH"@OFSS2000 访问OFSS2000库的tOF_JJZH表

要注意,表名和字段名最好加双引号,否则会被按大写解析,可能导致报对象不存在的错误.

更多推荐