SSIS:是否可以删除字符串中的特定字符然后将其转换为整数

时间:2017-04-27 00:57:00

标签: sql reporting-services ssis bids

我想知道您是否可以处理字符串数据337-4425并删除特定字符-并将其更改为整数数据类型。我很好奇这是否可能。你可以分享你的想法,我会很感激,也喜欢向有经验的程序员学习。

编辑1:我尝试使用派生列使用像Replace([MyColumn],"-","")这样的表达式,也想知道它是否可能像这样Replace([MyColumn],"-","") || Replace([MyColumn],"*","")这样做,因为我在尝试时遇到错误。所以我暂时选择了第一个表达式,然后我尝试执行IS然后遇到了这个错误。

  

错误:数据流任务中的0xC0049060,派生列[59]:在数据类型之间进行转换时发生溢出。源类型太大,无法放入目标类型。   错误:数据流任务中的0xC0209029,派生列[59]:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “派生列”失败,因为发生错误代码0xC0049060,并且“派生列。输出[派生列输出] .Columns [INTSCBMIN]”上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。   错误:数据流任务中的0xC0047022,SSIS.Pipeline:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件“派生列”(59)上的ProcessInput方法在处理输入“派生列输入”(60)时失败,错误代码为0xC0209029。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。   错误:数据流任务中的0xC02020C4,平面文件源[73]:尝试向数据流任务缓冲区添加行失败,错误代码为0xC0047020。   错误:数据流任务中的0xC0047038,SSIS.Pipeline:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 Flat File Source上的PrimeOutput方法返回错误代码0xC02020C4。当管道引擎调用PrimeOutput()时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

我将输出列更改为numeric,我的目的地的数据类型为bigint

1 个答案:

答案 0 :(得分:1)

将空字符串替换为短划线,然后将其转换为整数。 在数据流中,使用派生列。

(DT_I4)REPLACE([MyColumn],"-","")