/*---------------------------
Author : lonion
Date : 2011-10-30
-------------------------------*/
由ODBC连通Oracle与SQL Server
1、在Oracle服务器上建立一个odbc数据源(系统DSN)。示例中建立的数据源为ODBC251。
2、配置inithsodbc.ora
在Oracle数据库的主目录下有一个inithsodbc.ora文件($ORACLE_HOMEhsadmin),复制一份并重命名为init.ora,放在该目录下。示例中使用的SID为HS251,即创建了一个initHS251.ora文件,该文件的内容如下:
HS_FDS_CONNECT_INFO = ODBC251 --所建立的odbc数据源。
HS_FDS_TRACE_LEVEL = OFF
[@more@]
3、配置listener.ora
在$ORACLE_HOMEadmin目录下有一个listener.ora文件,在SID_LIST_LISTENER中添加一个SID_DESC,内容为:
(SID_DESC=
(SID_NAME=HS251) --SID_NAME,与init.ora文件名的SID一致,即HS251
(ORACLE_HOME=F:oracleproduct10.2.0db_1) --oracle主目录($ORACLE_HOME)
(PROGRAM=hsodbc) --表示以hsodbc方式进行连接
)
建议使用记事本编辑.ora文件里的内容。
注意SID_NAME、ORACLE_HOME、PROGRAM的先后顺序。
注意:如果是直接从网页上复制代码的请注意回车、换行符,因为它会导致监听程序启动失败错误如下:
TNS-01155: 在 LISTENER.ORA 中指定的 SID_LIST_LISTENER 参数不准确
NL-00303: NV 字符串中存在语法错误
4、配置tnsnames.ora:
在$ORACLE_HOMEadmin目录下有一个tnsnames.ora文件,需要在该文件里添加一个tns命名服务,通过所添加的tns命名服务建立dblink,以ODBC为中介,就可以完成Oracle对SQL Serve的连接。所添加的内容为:
HS251= --HS251为tns服务命名
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=(SID=HS251))
(HS=OK)
)
5、创建数据库链接
SYS用户登录
SQL> CREATE DATABASE LINK SQL2000 CONNECT TO "sa" IDENTIFIED BY "cargosa" USING 'HS251' ;
注意:为了避免Oracle数据库的大小写问题,SQL Server数据库的用户名、密码均加上双引号。
6、查询SQL Server数据库上的表
SQL> SELECT * FROM 表名@SQL2000;
SQL>DESC 表名@SQL2000 同样起作用。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24389441/viewspace-1056563/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24389441/viewspace-1056563/