我们通过Power查询从web加载CSV。在其他列中,有三个money列,数据类型为DT_NTEXT作为输出列。我已经尝试使用数据转换任务作为第一件事,将列转换为DT_WSTR(4000),然后在下面的派生列任务中使用以下表达式将它们转换为数值(17,5):
TRIM(price_conv) == "" ? NULL(DT_NUMERIC,17,5) : ((DT_NUMERIC,17,5)TRIM(price_conv))不幸的是,这仍然失败。
错误信息:
[派生列2]错误: SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。由于发生了错误代码0xC0049063,“派生列”失败,而“派生column.OutputOutput of column.columnprice_derived”上的错误行处理指定错误失败。指定组件的指定对象上发生错误。在此之前可能会发布错误消息,并提供有关故障的更多信息。
SSIS.Pipeline错误: SSIS错误代码DTS_E_PROCESSINPUTFAILED。在处理输入“派生列的输入”(3)时,组件"erived“(2)的ProcessInput方法失败,错误代码为0xC0209029。标识的组件从ProcessInput方法返回一个错误。错误是特定于组件的,但是错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,并提供有关故障的更多信息。
错误信息部分翻译自德语。
我还试图在的高级编辑器中设置DT_WSTR,但也失败了。
有谁有主意吗?
发布于 2021-05-18 07:30:31
问题是,从ntext到数值引用:https://learn.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15没有隐式或显式转换。
剪裁首先会失败,所以您可能需要做的事情,如billinkc所建议的,是双转换,即wstr,trim,然后是数字:
(DT_NUMERIC,17,5)TRIM((DT_WSTR,20)(price_conv))https://stackoverflow.com/questions/67574962
复制相似问题