由ODBC连通Oracle与SQL Server

/*---------------------------

Author : lonion

Reference : article1,article2

Date : 2011-10-30

-------------------------------*/


ODBC连通OracleSQL Server


1
Oracle服务器上建立一个odbc数据源(系统DSN。示例中建立的数据源为ODBC251


2、配置inithsodbc.ora

Oracle数据库的主目录下有一个inithsodbc.ora文件($ORACLE_HOMEhsadmin),复制一份并重命名为init.ora,放在该目录下。示例中使用的SIDHS251,即创建了一个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_NAMEORACLE_HOMEPROGRAM的先后顺序。


注意:如果是直接从网页上复制代码的请注意回车、换行符,因为它会导致监听程序启动失败错误如下:

TNS-01155: LISTENER.ORA 中指定的 SID_LIST_LISTENER 参数不准确

NL-00303: NV 字符串中存在语法错误


4
配置tnsnames.ora

$ORACLE_HOMEadmin目录下有一个tnsnames.ora文件,需要在该文件里添加一个tns命名服务,通过所添加的tns命名服务建立dblink,以ODBC为中介,就可以完成OracleSQL Serve的连接。所添加的内容为:

HS251= --HS251tns服务命名

  (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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值