Streamoutput 2020-01-17
===============================================
2020/1/17_第1次修改 ccb_warlock
===============================================
最近2个月在写mssql的存储过程,业务需求需要向第三方oracle写回数据,所以需要解决如何通过mssql连接oracle并写回数据。
通过SSMS查看,如果Oracle Provider for OLE DB存在,则跳过步骤一(安装Oracle数据访问组件ODAC)。
从oracle官网(https://www.oracle.com/database/technologies/odac-downloads.html)获取最新的包。
PS.为了方便,我将包解压到E盘。
简单说下几个目录的内容:
asp.net:ASP.NET 2 的组件
asp.net4:ASP.NET 4 的组件
instantclient_12_2:oracle客户端
network:存放tnsnames.ora
odp.net4:.NET 4 的组件
odp.net20:.NET 2 的组件
oledb:OLE DB的组件
oramts:MTS服务
我电脑装了火绒,安装之后SSMS一直看不到Oracle Provider for OLE DB,关了火绒之后重新安装,SSMS里就能看到了。
管理员身份打开cmd后,执行下面的命令
# 切换到解压后的目录
e: cd ODAC122010Xcopy_x64
# 安装到 D:\ODAC 目录下
install.bat oledb d:\ODAC ODAC
PS: ODAC,可以随意指定一个字符串。这个参数是用来写入注册表的。安装成功后会在注册表HKEY_LOCAL_MACHINE\Software\Oracle\KEY_ODAC("KEY_"后面的ODAC就这个随意指定的字符串)
编辑系统变量PATH,添加值 D:\ODAC 和 D:\ODAC\bin
打开SSMS,右键修改访问接口OraOLEDB.Oracle的属性,勾选“允许进程内”,点击“确定”;
在oracle中,定义了表USER_T如下
用下面的sql语句在ssms中查询,能获取结果说明连接功能正常。
1.https://jingyan.baidu.com/article/e4511cf336ce872b845eafd4.html