SSIS连接Oracle问题汇总

一、未安装Oracle客户端

错误提示:Test connection failed because of an error in initializing provider. 未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 7.3.3 版(或更高)客户软件安装的一部分。在安装这些组件之前,将无法使用此提供程序。

出现这个提示的原因是没有安装oracle客户端,SSIS连接Oracle数据源必须要安装客户端才能连接成功。

 

二、服务器名错误

错误提示:由于在初始化提供程序时出错,导致连接测试失败。ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME

解决方法:服务器名要与安装文件中tnsnames.ora中的自定义命名一致,例如:我这里的自定义命名为ORACLE,那么在连接oracle时中的服务器名就必须填写oracle(不区分大小写)

 

三、数据类型不支持

错误提示:

异常来自 HRESULT:0xC0202009
数据流任务 [OLE DB 源 [1]] 出错: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80004005。
已获得 OLE DB 记录。源:“Microsoft OLE DB Provider for Oracle” Hresult: 0x80004005 说明:“发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。”。
已获得 OLE DB 记录。源:“Microsoft OLE DB Provider for Oracle” Hresult: 0x80004005 说明:“数据类型不被支持。”。
 

原因说明:Oracle数据源在SSIS中不支持日期类型的数据

解决方法:将日期类型转换为字符串,如:select to_char(FBEGINDATE,'yyyy-mm-dd hh24:mi:ss') as FBEGINDATEFENDDATE from T_BD_PERIOD

 

四、字符串代码页值不正确

警告提示:

该组件发出了以下警告:
{1BE60367-95D6-490F-B46A-5C982C6953F3} [OLE DB 源 [1]] 发出警告: 无法从 OLE DB 访问接口检索列代码页信息。如果该组件支持“DefaultCodePage”属性,将使用来自该属性的代码页。如果当前的字符串代码页值不正确,请更改该属性的值。如果该组件不支持该属性,将使用来自该组件的区域设置 ID 的代码页。

解决方法:单击右键》属性》修改AlwaysUseDefaultCodePage为True(默认为false)

 

五、数据源连接失败

错误提示信息:

[OLE DB 源 [45]] 错误: SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“oracle.cyeas”的 AcquireConnection 方法调用失败,错误代码为 0xC0209303。可能在此之前已经发出错误消息,提供了有关 AcquireConnection 方法调用失败原因的详细信息。

错误截图如下

这个错误是刚新建一个项目时经常遇到的,解决方法很简单,如下操作即可

1.选中项目单击右键,选择“属性”

2.配置属性——调试——调试选项

将Run64BitRuntime的属性改为False(默认为True)

 

六、数据源连接失败

 Test connection failed because of an error in initializing provider. ORA-12154: TNS:could not resolve the connect identifier specified

 

无法解析指定的连接标识符(或称为TNS名称)。这个问题通常是因为tnsnames.ora文件中不存在所请求的TNS名称,或者该文件不在正确的目录中,或者文件格式不正确。

解决方案:在tnsnames.ora文件中加上连接信息,连接名与服务器名保持一致,例如我这里的连接服务器名都是GBWL_View

 

 

文章持续更新中~~~

 

注:该文章仅记录本人在写程序过程中遇到的一些问题以及相应的解决方案,若有错误或表述不妥之处欢迎大家指出

 

 
 

 

posted @ 2018-11-21 12:04  冬日暖羊  阅读(2068)  评论(0编辑  收藏  举报