我尝试了几种格式化派生列以消除尾随空格的方法。仅在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个额外空间:
答案 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可能过多,但并没有真正受到伤害。