透过SQL Server 2008拜候Oracle 10g的配置办法[MSSQL防范]
本文“透过SQL Server 2008拜候Oracle 10g的配置办法[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
之前写过一篇关于SQL Server 拜候MySQL数据库的文章,近来恰好又碰到需求拜候Oracle 的情形,将配置历程记录下来也供大家参考.
预备工作
事前在需求拜候Oracle 数据库的主机上完成以下工作:
1. 安装SQL Server 数据库:SQL Server 2008 R2 Express
2. 安装Oracle 客户端拜候程序:Oracle 10g Client
3. 配置Oracle 客户端tnsnames.ora 文件,此中需求注意文件中的数据库别名“ORADB”,该名称在下文成立Linked Server 时将会利用到.
- ORADB =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = HOSTIP)(PORT = 1521))
- (CONNECT_DATA = (SID = DBNAME))
- )
4. 确保主机可以通过SQLPlus 拜候远程Oracle 数据库.
sqlplus" border="0" src="http://images.51cto.com/files/uploadimg/20100908/0848100.png" />
成立Linked Server
翻开SQL Server Management Studio 进入Server Objects 列表,右键Linked Servers,点击“New Linked Server...”
在General 界面中填写下面几项内容:
Linked server: 填写Linked Server 名称
Provider:挑选Microsoft OLE DB Provider for Oracle
Product name:填写Oracle
Data source:填写上面提到的数据库别名ORADB
点击Security ,点选“Be made using this security context”,假定Oracle 数据库有一个名称为admin 的用户ID,在“Remote login”中输入拜候帐号,点击“OK”完毕成立.
完成后Linked Servers 中会看到刚成立的Oracle 数据库链接.
拜候Oracle
接下来便可以在SQL Server 端拜候Oracle 数据库了,查询语法以下:
- SELECT * FROM LINKED_NAME..ACCOUNT_NAME.TABLE_NAME;
结合上面的实例,假定要查询admin 用户下jobs 表的内容,则呼应SQL 语句应为:
- SELECT * FROM ORASVR..ADMIN.JOBS;
利用上述办法举行数据查询时,若Oracle 表有NUMBER 列时会呈现转化错误,这时可以将NUMBER 范例转化为字符串(也有将该列属性改正成NUMBER(10),为NUMBER 列设定好位数).考虑到View 查询等因素个人感受还是转为字符串的方法较为通用.
当然假如查询的列过量,每个NUMBER 列都转为VARCHAR 的话工作量也的确不小,这时最好的办法就是利用OPENQUERY 函数:
- SELECT * FROM OPENQUERY(LINKED_NAME,'SELECT * FROM TABLE_NAME');
按照OPENQUERY 的语法上面SQL 语句应变成:
- SELECT * FROM OPENQUERY(ORASVR,'SELECT * FROM JOBS');
这样我们便可以在SQL Server 端便利的拜候Oracle 数据库,并做呼应的数据调整.
原文标题:通过SQL Server 2008 拜候Oracle 10g
链接:http://www.cnblogs.com/gnielee/archive/2010/09/07/access-oracle-from-sqlserver.html
<以上是“透过SQL Server 2008拜候Oracle 10g的配置办法[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |