在SSIS中转换数据类型

时间:2010-10-20 13:25:36

标签: sql sql-server ssis ssis-data-types

我得到一个输入CSV文件,我必须上传到我的oracle数据库。

以下是一些示例数据

ContractId, Date, HourEnding, ReconciledAmount
13860,"01-mar-2010",1,-.003
13860,"01-mar-2010",2,.923
13860,"01-mar-2010",3,2.542

我必须将传入列转换为DB_TIMESTAMP(以匹配目标表中的结构)。

但是当我使用Data Conversion进行转换时,我收到错误

Data conversion failed while converting column "Date" (126) to column "Date" (496). The conversion returned status value 2 and status text "The value could not be converted because of a potential loss of data.

如何才能正确转换此数据?

2 个答案:

答案 0 :(得分:4)

在这种情况下你可以做的是将平面文件连接中的Text Qualifer更改为单个双引号(“)。

这将导致SSIS插入

13860,"01-mar-2010",1,-.003

as

13860,01-mar-2010,1,-.003

如果您的数据中也包含任何嵌入的逗号,如果它们也被引用了参数,那么这还有额外的好处。

答案 1 :(得分:2)

问题在于文件中的引号[]。 您应该从文件中删除它们,或者在Derived Column组件之前添加Data Conversion,以删除带有表达式

REPLACE([TextDateColumn], “\””, “”)