1

我创建了一个 SSIS 包,它从 Oracle 10g 服务器中提取数据并将它们推送到 SQL Server 2008 中。我在 Oracle 中有一个名为admission_date.

以下是我在 Oracle 中的查询。

select pt_id,admission_date 
from stays

它工作正常。

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

错误:STAYS 时出现 0xC02090F5,ADO NET 源 [1050]:组件“ADO NET 源”(1050) 无法处理数据。ORA-01843: 无效的月份

错误:0xC0047038 在 STAYS,SSIS.Pipeline:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“ADO NET Source”(1050) 上的 PrimeOutput 方法返回错误代码 0xC02090F5。当管道引擎调用 PrimeOutput() 时,组件返回了失败代码。失败代码的含义由组件定义,但错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

对此的任何输入都会有所帮助。

4

2 回答 2

3

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

另请注意,Oracle 的有效日期范围比 SQL 大得多,因此根据您的 Oracle 数据,您可能具有不作为有效 SQL 日期出现的有效 oracle 日期。

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

Oracle 到 SSIS 中的 SQL2005 DATETIME 字段溢出

于 2012-07-20T19:32:41.140 回答
0

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

于 2012-07-20T19:32:13.330 回答