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建立成功,好吧,并没有什么卵用!