SQL Server SSIS:ADO.net日期问题



我创建了一个SSIS包,该包从Oracle 10g服务器提取数据,并在SQL server 2008中推送这些数据。我在Oracle中有一个名为admission_date的日期数据类型字段。

以下是我在Oracle中的查询。

select pt_id,admission_date 
from stays

它运行良好。

当我试图通过SSIS包通过ADO.net在SQL Server中提取数据时。我收到以下错误消息。

错误:STAYS处的0xC0209F5,ADO NET源[1050]:组件"ADONET Source"(1050)无法处理数据。ORA-01843:不是有效月份

SSIS的STAYS处出现错误:0xC0047038。管道:SSIS错误代码DTS_E_prime输出失败。组件"ADO.NET"的PrimeOutput方法Source"(1050)返回错误代码0xC0209F5。返回的组件管道引擎调用PrimeOutput()时的故障代码。这个故障代码的含义由组件定义,但错误是致命的,并且管道停止执行。可能有错误在此之前发布的消息,其中包含有关失败的更多信息。

对此的任何意见都会有所帮助。

使用类似于TO_CHAR的东西(addmission_date,'yyyy-mm-dd HH24:MI:SS')将oracle日期格式化为SQL喜欢的格式。

还要注意,Oracle的有效日期范围比SQL大得多,因此根据您的Oracle数据,您可能会有不属于有效SQL日期的有效Oracle日期。

请参阅使用SSIS 从Oracle复制到Sql Server时处理时间戳/日期时间

SSIS 中的Oracle到SQL2005 DATETIME字段溢出

问题是Oracle表是视图而不是表,admission_date是从SQL的decode命令中提取的。我按原样拉,它解决了我的问题。

最新更新