【发布时间】:2016-07-14 16:56:55
【问题描述】:
首先,当列不是 NULL 时,它能够成功地进行转换。目标数据库字段接受空值。
在我的 数据转换 步骤中,我已将输入列的 DataType 设置为 numeric[DT_Numeric]、精度 18 和比例 2。
我的 CSV 中有两行,第一行不包含任何 NULLS.. 如果我执行它就成功了。但是,当我在该列中添加具有 NULL 值的第二行时,它会失败并且出现以下错误:
[数据转换 [2]] 错误:将列“列 24”(138) 转换为列“DbColumn24”(22) 时数据转换失败。转换返回状态值 2 和状态文本“由于可能丢失数据,无法转换该值。”。
[数据转换 [2]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “Data Conversion.Outputs[Data Conversion Output].Columns[DbColumn24]”失败,因为发生了错误代码 0xC020907F,并且“Data Conversion.Outputs[Data Conversion Output].Columns[DbColumn24]”上的错误行处置指定错误时失败.指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“数据转换输入”(3) 时,组件“数据转换”(2) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
我认为在数据转换步骤之前我不需要 Derived Column 步骤来处理任何空值,因为 DB 列接受空值。
【问题讨论】:
标签: sql-server ssis