SQL Server连接Oracle

来源:互联网 发布:高端保险知乎 编辑:程序博客网 时间:2024/05/17 07:47

1.安装Oracle基础客户端和Oracle ODBC驱动程序

关于这一步网上有很多种方法,这里楼主收集了三种方法,并给出相关链接

方法一:安装Oracle数据库存储组件ODAC

详见:《Oracle数据访问组件ODAC的安装方法》 http://jingyan.baidu.com/article/e4511cf336ce872b845eafd4.html

ODAC下载地址:

64位 http://www.oracle.com/cn/solutions/midsize/index-090165.html

32位 http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html

方法二:安装base包和odbc包

详见:《Windows Oracle ODBC安装配置》 http://www.cnblogs.com/shelvenn/p/3799849.html

64位 http://www.oracle.com/technetwork/topics/winx64soft-089540.html

32位 http://www.oracle.com/technetwork/topics/winsoft-085727.html

方法三:安装Oracle客户端程序

详见:《oracle客户端安装教程http://jingyan.baidu.com/article/5552ef473da8f5518ffbc991.html

以上三种方法,楼主全试过了,经过一番折腾,现在电脑乱得很,方法一、二不确定能生效,方法三是最保险的,但是耗资源,等楼主有空了,再去折腾一下,看看哪个方法最好。

2.创建链接服务器

方法一:IP:端口/SERVICE_NAME 或SID 字符串定义数据源

(1)打开Microsoft SQL Server Management Studio,服务器对象-链接服务器,(右键)新建链接服务器-常规

链接服务器:将用于远程执行SQL的服务器对象名称,自定义
服务器类型:选择“其他数据源”
提供程序:选择 “Oracle Provider for OLE DB”
产品名称:任意
数据源:IP:端口/SERVICE_NAME 或SID


(2)选择“安全性”设置用户密码,如果是sys用户,那么密码还应加上"  as  sysdba",注意两个空格不能少

选择“使用此安全上下文建立连接”

远程登录:Oracle服务器用户名

使用密码:Oracle服务器密码

点击“确定”按钮,创建成功



方法二:tnsnames.ora文件定义数据源

(1).配置tnsnames.ora文件

X:\app\client\Administrator\product\12.1.0\client_1\network\admin目录下,新建一个tnsnames.ora文件,或者也可以参考此目录下的sample文件夹里的tnsnames.ora模板文件

内容为

ORCL =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.175.130)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = orcl)    )  )

HOST为Oracle服务器地址

PORT为Oracle服务器端口号

SERVICE_NAME为Oracle服务名

(2)添加环境变量

配置好tnsnames.ora文件后,我们还需要系统能够找到这个文件,如果是安装了完整Oracle客户端程序,楼主认为应该会自动创建环境变量,然而楼主实践了好几种方案,已经忘记了环境变量是不是自己建的了。

这个文件的位置是"X:\app\client\Administrator\product\12.1.0\client_1\network\admin",

但是楼主查看了环境变量Path里并没有它,只有"C:\app\client\Administrator\product\12.1.0\client_1\bin"

所以楼主也不知道系统是怎么找到的这个文件,还是等楼主试试。

(3)添加链接服务器

步骤同方法一,只是数据源字段应填tnsnames.ora文件里配置的tnsname,楼主这里是ORCL。

由于之前楼主先建了个MySQL链接服务器,又参考了网上新建Oracle链接的方法,发现都像MySQL一样都先建立了ODBC数据源,所以数据源一直填的Data Source Name字段的值,结果一直报错!!!

无法初始化链接服务器 "ORACLE3" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的数据源对象。
链接服务器"ORACLE3"的 OLE DB 访问接口 "OraOLEDB.Oracle" 返回了消息 "ORA-12154: TNS: 无法解析指定的连接标识符"。 (.Net SqlClient Data Provider)

注意,建立Oracle链接服务器,是不需要新建ODBC数据源的!!!就是这一点误导了楼主,导致一直找不到报错的原因,试了好多种方法都失败!不过这里可以测试是否能够链接成功,楼主还是讲一下

3.如何建立ODBC数据源?

(1)跟MySQL差不多,管理工具-ODBC数据源(64位),名称32位系统略有不同

选择系统DSN,添加

选择"Oracle in OraClient12Home1”(安装ODBC的方式不同,名字略有不同)


(2)楼主在SQL Server新建链接服务器的数据源字段里就是填的这个Data Source Name,被坑得好惨!其实应该填的是TNS Service Name字段的内容,如果不配置tnsnames.ora文件这里也可以填IP:端口/SERVICE_NAME或SID

User ID:Oracle用户名


(3)点击Test Connection 测试连接(如果是sys账号,密码应为“密码”空格as空格sysdba"),测试通过的话很快会弹出成功提示框,然后OK,OK建立成功,好吧,并没有什么卵用!




0 0
原创粉丝点击