BODS:如何将一列中的长字符串拆分为新列中的多个段

2020-08-31 17:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 有一个问题,我需要解...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

有一个问题,我需要解决此问题的帮助。

场景:

有一列长度为varchar(8000)的源列。 现在目标在一列中最多接受132个字符。 因此,如果输入列中的字符串大于132个字符,则必须按132个字符段的SEQUENCE分解字符串,并将其装入输出列(大小为varchar(132))。

例如:

如果输入在源列中为600个字符长。 然后,必须将该输入顺序分为5个输出列(132 + 132 + 132 + 132 + 72)。 前四列应分别包含132个字符,第五列应包含剩余的72个字符。

请大家尽快帮助我。 请帮助我为此构建自定义功能。

谢谢。

Samarth

6条回答
宇峰Kouji
2020-08-31 18:30

8000个字符太长,如果您尝试将每个字符分解为132个字符,则会有大约60列用于存储数据。

如果您可以容纳60列,则可以检查每列的长度,并使用子字符串函数填充。

第1列-ifthenelse(length(source_column)> 132,SUBSTR(source_column,1,132),SUBSTR(source_column,1,length(source_column)))

第2列-ifthenelse(length(source_column)> 132 * 2,SUBSTR(source_column,132 + 1,132 * 2),SUBSTR(source_column,132 + 1,length(source_column)))

第3列-ifthenelse(length(source_column)> 132 * 3,SUBSTR(source_column,132 * 2 + 1,132 * 3),SUBSTR(source_column,(132 * 2)+1,length(source_column)))

....依此类推。

或者,您可能想看看执行任务的数据透视转换。

一周热门 更多>