0

我尝试了几种方法来格式化派生列以消除尾随空格。仅在 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 个额外的空间:

结果

4

1 回答 1

0

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

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

简单的代码:

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

//添加 .Trim() 清除所有空白

由于评论而添加:

在你通过 C# 运行它之后,你可以做你的派生列

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

TRIM 在这里可能过度,但并没有真正伤害。

于 2018-03-14T20:34:04.977 回答