0

试图在 BIDS 2008 中设置一个 SSIS 派生列。我有一个单列输入 [Column 0],其中包含一个管道分隔的字符串。我需要一个公式来从输入列中提取其中一个“字段”,但是长度是可变的。这是我目前使用的公式:

SUBSTRING( [Column 0],(FINDSTRING( [Column 0], "|",10 )+1),(FINDSTRING( [Column 0], "|",11)-FINDSTRING( [Column 0],"|",10)-1))

当我输入该公式时,它会变成红色并表示长度参数无效。试图通过找到定界符的下一次迭代的位置然后从定界符的当前迭代的位置中减去来确定数据的长度。

当我用静态数字替换公式的长度部分时,错误就消失了。

有人可以帮我更正上面的公式吗?谢谢!

4

2 回答 2

0

使用TOKENSSIS 提供的功能进行拆分|并找到您想要的“字段”。

令牌(SSIS 表达式)

根据用于分隔字符串中标记的指定分隔符和表示要返回哪个标记的标记编号,从字符串中返回标记(子字符串)。

TOKEN(character_expression, delimiter_string, occurrence)
于 2016-07-14T18:27:21.923 回答
0

FOUND THE ISSUE!! The output column on my flat file data source was set to a width of 5000. I adjusted the width down to 4000 and closed then re-opened the project. It showed me an error on the flat file due to the change in metadata. When I re-saved the file and then re-entered the formula above, all worked as expected.

Thanks everyone!

于 2016-07-14T20:59:40.433 回答