【发布时间】:2020-11-11 09:54:33
【问题描述】:
我正在尝试在 SSIS 中将字符串 (DT_WSTR) 转换为日期格式 (DT_DBDATE)。
我的来源是 Excel 文件,输入字段如下所示:OCT 04 2020
我的结果应该采用 2020-10-04
格式我使用派生列编辑器并创建了这个表达式:
(DT_DBDATE)(SUBSTRING([BILLING CYCLE DATE],8,4) + "-" + SUBSTRING([BILLING CYCLE DATE],1,3) + "-" + SUBSTRING([BILLING CYCLE DATE],5,2))
我得到的错误是:
[派生列 [312]] 错误:尝试执行类型转换时出错。
[派生列 [312]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “组件”派生列“(312)”失败,因为发生错误代码 0xC0049064,并且“输入列“BILLING CYCLE DATE”(388)上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。在处理输入“派生列输入”(313) 时,组件“派生列”(312) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。
我知道有几个类似的问题,我也尝试了很多,但到目前为止没有任何帮助。
我不知道为什么它不像一个月前那样工作。在其他 SSIS 包中,类似的表达式也可以正常工作。
感谢任何答案!
【问题讨论】: