用于将字符串拆分为多个值的ESQL
问题描述:
以下输入xml字段需要子字符串为6个字符,并且每个6个字符应该分割并保存在输出的选项字段中。用于将字符串拆分为多个值的ESQL
Input:
<feature>124414500045563879</feature>
output:
<option>124414</option>
<option>500045</option>
<option>563879</option>
是否有IIB ESQL可以实现上述结果的任何标记生成器功能。
答
据我所知,没有ESQL中的String Tokenizer函数。
但是,您可以使用以下过程作为基础来实现您的目标。此方法将Delim上的S拆分为Env(Environment.Split.Array []) 中的数组,并在重新填充之前删除Environment.Split。
就你而言,你不需要Delim,你应该在Substring部分使用固定长度。
CREATE PROCEDURE Split (IN S CHARACTER, IN Env REFERENCE, IN Delim CHARACTER)
BEGIN
DECLARE P INTEGER;
DECLARE Idx INTEGER 1;
SET Env.Split = NULL;
REPEAT
SET P = POSITION(Delim IN S);
IF P = 0 THEN
SET Env.Split.Array[Idx] = S;
ELSE
SET Env.Split.Array[Idx] = LEFT(S, P - 1);
SET S = SUBSTRING(S FROM P + LENGTH(Delim));
SET Idx = Idx + 1;
END IF;
UNTIL P = 0
END REPEAT;
END;
答
另一种解决办法是采取特征作为比特流的值,从它建立一个新的BLOB消息,以及具有使用该描述了令牌的消息定义,它重新分析那个价值。重新解析后,您可以进一步处理新的逻辑消息。
谢谢vincent。我会尝试上述方法。 – ranaa
我遵循上面的方法并确定了输出。 – ranaa
@ranaa很高兴能读到! (:如果它运作良好,你可以设置这个答案为已接受。 – VincentS