操做系统是32位的状况下,曾经没费太多时间建立好了到oracle的连接服务器。主要要点就是:sql
一、安装oracle精简客户端。当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了之后再配置对应目录(个人是C:\Oracle\ora90\network\ADMIN)下的tnsnames.ora文件。这一步作完,基本上剩余的工做就是在sql server 2008里面建立连接服务器了。数据库
二、新建连接服务器。当时我连的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用户名和密码是根据本身的实际状况来设。windows
这一步骤还没完,还要把选择页切换到“安全性”,选中“使用此安全上下文创建链接(M):",而后输入oracle用户名和密码。最后点【肯定】按钮,至此,到oracle的连接服务器建立成功!顺便补充一句,访问接口选“Oracle Provider for OLE DB”,我始终没有建立成功过,先记录下来,若有时间再琢磨了。完整截图以下:安全
------------------------------------------------偶是分割线-----------------------------------------------------------------------------------------------服务器
转眼间,遇到了64位的操做系统和64位的sql server 2008,要连接的仍然是同一个64位11goracle数据库。本觉得跟之前的差很少,可是访问接口下拉选项根本就没有“Microsoft OLE DB Provider for Oracle”,因此32位下的成功经验彻底用不上了。用百度搜索后决定用odbc方式,因而前后碰到以下问题:oracle
问题一,打开odbc源配置界面,系统DSN找不到oracle的驱动。后来才搞清楚若是是64位的odbc驱动就用”C:\Windows\System32\odbcad32.exe",若是是32的odbc驱动那就到“C:\Windows\SysWOW64\odbcad32.exe”设置。不晓得我说反没有,按个人印象是这样子的ide
问题二,终于找到了“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',对此一点概念都没有,能百度出来真是有运气的成分!毕竟花时间最后仍是解决了,也留了疑问并无彻底了解透彻,仍是自我鼓励一下。