SQL Server 2008创建oracle链接服务器(心得)

原创 2013年12月04日 10:28:47

    操作系统是32位的情况下,曾经没费太多时间创建好了到oracle的链接服务器。主要要点就是:

1、安装oracle精简客户端。当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了以后再配置对应目录(我的是C:\Oracle\ora90\network\ADMIN)下的tnsnames.ora文件。这一步做完,基本上剩余的工作就是在sql server 2008里面创建链接服务器了。

2、新建链接服务器。当时我连的oracle数据库是64位11g,虽然安装的是“oracle9i310-客户端简化版”,最终还是成功创建好了链接服务器。“服务器类型”选的是“其他数据源”,访问接口选“Microsoft OLE DB Provider for Oracle”,"产品名称“随便输了点字符,没什么影响;”数据源“就是使用tnsnames.ora里面自己设置好的名称,比如,我在里面设的名称是"JSB",就照搬过来填在此处。“访问接口字符串”这个地方是耽误了我一段时间的,最开始我把这里空着,链接服务器当时也是创建成功了的,但是实际执行最简单的查询都始终处于执行中,没见着报错也没见到出结果。后来是把连接字符串写在这里才最终正常返回结果的!这个位置我是这样设的:data source=JSB;user=jsb123;password=jsb123;Persist Security Info=True。oracle用户名和密码是根据自己的实际情况来设。

     这一步骤还没完,还要把选择页切换到“安全性”,选中“使用此安全上下文建立连接(M):",然后输入oracle用户名和密码。最后点【确定】按钮,至此,到oracle的链接服务器创建成功!顺便补充一句,访问接口选“Oracle Provider for OLE DB”,我始终没有创建成功过,先记录下来,如有时间再琢磨了。完整截图如下:

 

------------------------------------------------偶是分割线-----------------------------------------------------------------------------------------------

    转眼间,遇到了64位的操作系统和64位的sql server 2008,要链接的仍然是同一个64位11goracle数据库。本以为跟以前的差不多,但是访问接口下拉选项根本就没有“Microsoft OLE DB Provider for Oracle”,所以32位下的成功经验完全用不上了。用百度搜索后决定用odbc方式,于是先后碰到如下问题:

    问题一,打开odbc源配置界面,系统DSN找不到oracle的驱动。后来才搞清楚如果是64位的odbc驱动就用”C:\Windows\System32\odbcad32.exe",如果是32的odbc驱动那就到“C:\Windows\SysWOW64\odbcad32.exe”设置。不晓得我说反没有,按我的印象是这样子的尴尬

    问题二,终于找到了“oracle9i310-客户端简化版”所安装的odbc驱动,第二个问题随之而来,创建系统DSN在测试连接始终失败。从网上查到的信息是说是这种低版本的连接11g数据库有问题。最终放弃了这个客户端版本另找他法。其实,32位下工作得很好,最终还是没落实清楚到底有没有冤枉它。

    问题三,找合适的64位客户端和odbc驱动。很奇怪“oracle9i310-客户端简化版”做得很好,安装后想要的东西都有了,现在为了解决问题三下载了多个压缩包都没使用成功,这个问题耗费了快两天的业余时间,比如下载的“ODAC1120320X64copy.zip",有人说好用,我是一点没用上,放弃。最后起作用的是这两个压缩包:”instantclient-basic-windows.x64-11.2.0.3.0.zip“和”instantclient-odbc-windows.x64-11.2.0.3.0.zip“。推荐自己在甲骨文网站注册帐号后自行下载。好,第三个问题ok。装完整的oracle客户端甚至完整安装oracle数据库也许就不能纠结这么长时间找软件了。但是,仅仅是为了在sql server 2008数据库服务器上创建oracle链接服务器就这样做,必定不能作为很好的方案。这也是花时间找精简版本的重要原因。

    问题四,驱动有了,接下来添加系统DSN就碰到问题,在TNS Service Name下拉框无选项。这当然跟tnsnames.ora有关,这才发现前一个步骤根本就没有涉及处理tnsnames.ora。后来是拷贝了“oracle9i310-客户端简化版”使用的tnsnames.ora到:”instantclient-basic-windows.x64-11.2.0.3.0“的安装目录,环境变量里面增加”TNS_ADMIN“,值设为:”instantclient-basic-windows.x64-11.2.0.3.0“的安装目录(我设的是:E:\instantclient_11_2)。下拉选项终于能看到tnsnames.ora里面自己设置好的名称了!测试连接成功,胜利近在眼前哈哈!相关的截图如下(Data Source Name由自己来设,我设的是oracle111。建链接服务器要用到这个名称):

    问题五,链接服务器始终创建不成功,报错:链接服务器 的 OLE DB 访问接口 "MSDASQL" 报错。身份验证失败;ORA-12154: TNS: 无法解析指定的连接标识符;Microsoft SQL Server,错误: 7399。几乎又用了一晚上在搜索该问题的解决方法。最后的正确答案是从csdn的旧帖子找到的,原讨论帖地址:http://bbs.csdn.net/topics/70308769 。失败之处就是“访问接口字符串(V)”没有设:MSDASQL!设好以后一切ok。完整的截图如下:

 

    64位环境下的链接服务器终于配置好了,能正常的查询数据。解决总共花费了两天的业余时间。简单的总结如下,如果知识面广恐怕不用频繁的百度和测试,因此耗费大量时间,例如@provider='MSDASQL',对此一点概念都没有,能百度出来真是有运气的成分!毕竟花时间最后还是解决了,也留了疑问并没有完全了解透彻,还是自我鼓励一下。







相关文章推荐

SQL Server 2008 新建链接服务器 for Oracle

通过建立链接服务器即可在SQL Server中访问Oracle数据库中的数据。

sql server 2008链接服务器的访问接口缺少 "Microsoft.Ace.OleDb.12.0" 接口 怎么办?

前面机子坏了 重装了64位的win7系统 然后装了32位的office 64位的sql server 2008 发现sql server 2008 没有 "Microsoft.Ace.OleDb...

myeclipse db brower 链接 sql server 2008 时

因为win7默认是没有装telnet的程序的 想要安装 依次点击“开始”→“控制面板”→“程序”,“在程序和功能”找到并点击“打开或关闭Windows 功能”进入Windows 功能设置对话框。找到并...

SQL Server 2008 允许远程链接 解决方法

用户在使用SQL Server 2008远程链接时,可能会弹出如下对话框: 在链接SQL服务器时发生网络链接错误或特定实例错误。SQL服务器不存在或者链接不成功。请验证用户名是否正确或SQL服务器是...
  • szyone
  • szyone
  • 2013年07月04日 14:35
  • 321

C++链接SQL SERVER 2008数据库

总的来说,ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。 _ConnectionPtr接口返回一个记录集或一个空指针。...

SQL Server 2008 允许远程链接 解决方法

用户在使用SQL Server 2008远程链接时,可能会弹出如下对话框: 在链接SQL服务器时发生网络链接错误或特定实例错误。SQL服务器不存在或者链接不成功。请验证用户名是否正确或SQL服务器...
  • lzy_1515
  • lzy_1515
  • 2011年10月12日 23:20
  • 10995

MFC ADO链接SQL Server 2008 封装好的类

刚开始学习MFC ,上网查了下与SQLServer相关的操作,主要是增删查改,自己给封装好,这里贴出了给自己备个份,顺便共享下,嘻嘻 #pragma once //AdoDatabase.h文件 cl...
  • fiempty
  • fiempty
  • 2015年03月20日 21:07
  • 315

SQL Server 2008 允许远程链接

用户在使用SQL Server 2008远程链接时,可能会弹出如下对话框: 在链接SQL服务器时发生网络链接错误或特定实例错误。SQL服务器不存在或者链接不成功。请验证用户名是否正确或SQL服务器...

SQL Server 2008 镜像操作心得(非域控环境中创建数据库镜像)

下面的文章,我是在网上找的(非域控环境中创建数据库镜像),针对这篇文章,我只想补充几句: 1、主机ip: 192.168.9.181        备机ip:192.168.9.182 2、删除...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server 2008创建oracle链接服务器(心得)
举报原因:
原因补充:

(最多只允许输入30个字)