这段时间在处理公司EAS的数据报表,需要通过ETL进行数据的抽取,当ETL都完成并在本地跑成功后,总以为万事大吉了,没想到部署到作业后,却一直无法成功,百度搜索了好多方法,跟着上面去操作还是一直报错,以下是我搜到的一些资料,如果大家的环境没有配置好的话可以通过以下的文章进行参考
http://www.cnblogs.com/527289276qq/p/4770379.html
http://www.cnblogs.com/527289276qq/p/5917351.html
https://www.cnblogs.com/tiger2soft/p/6954308.html
https://jingyan.baidu.com/article/546ae18560adcc1149f28cc1.html
接下来我说说我遇到的问题以及解决办法
手动执行作业截图如下
![](https://i-blog.csdnimg.cn/blog_migrate/3136157105587a6f23d12bf85cb8a2e5.png)
以下是错误详细信息截图,内容包括两点:
1、所请求的 OLE DB 访问接口 MSDAORA.1 尚未注册。如果未安装 64 位驱动程序,则以 32 位模式运行包。错误代码: 0x00000000。
已获得 OLE DB 记录。源:“Microsoft OLE DB Service Components” Hresult: 0x80040154 说明:“没有注册类”。
已获得 OLE DB 记录。源:“Microsoft OLE DB Service Components” Hresult: 0x80040154 说明:“没有注册类”。
2、SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“oracle.cyeas”的 AcquireConnection 方法调用失败,错误代码为 0xC0209303。可能在此之前已经发出错误消息,提供了有关 AcquireConnection 方法调用失败原因的详细信息。
![](https://i-blog.csdnimg.cn/blog_migrate/287ea443e8f723c9156e79c6950930f9.png)
出现问题的原因:Oracle客户端是32位的,但是服务器却是64位的系统,所以是因为不兼容导致的该问题
解决方法:如下图所示,双击作业——步骤——作业步骤属性——常规——配置——高级——勾选“32位运行时”,然后点击确定再确定,问题就得到完美解决了
如果也遇到类似问题的小伙伴赶紧试试吧,若还是报错,那就得看看自己的环境是否搭好了