SSIS中的派生列 - 尾随空间

时间:2018-03-14 19:21:48

标签: sql ssis etl removing-whitespace derived-column

我尝试了几种格式化派生列以消除尾随空格的方法。仅在Excel中查看列并转移到Access时格式化列是:

'=TRIM(CLEAN(SUBSTITUTE(E2,CHAR(160),"")))

在派生专栏中,我尝试过:

- REPLACE(RTRIM([Provider Number]),"\\x00A0","") == "" ? (DT_STR,10,1252)NULL(DT_STR,10,1252) : [Provider Number]

- TRIM([Provider Number]) == "" ? (DT_STR,10,1252)NULL(DT_STR,10,1252) : [Provider Number]

- LTRIM(RTRIM([Provider Number]))

当我查询列的长度时,当程序包运行(成功)时,我的结果仍会计入1个额外空间:

Results

1 个答案:

答案 0 :(得分:0)

看起来你知道你要修剪的是什么,但你在SSIS中使用ascii值时遇到了困难。

我似乎无法弄清楚如何在SSIS中使用ASCII,但是您可以通过脚本组件运​​行它。确保检查要读/写ProviderNumber的输入。

简单代码:

Row.ProviderNumber = Row.ProviderNumber.TrimEnd((char)160); 

//添加.Trim()以清除所有white space

由于评论而添加:

通过C#运行后,您可以执行派生列

TRIM([Provider Number]) == "" ? NULL(DT_STR,10,1252) : [Provider Number]

这里的TRIM可能过多,但并没有真正受到伤害。