前段时间朋友问了一个问题,怎么在ESQL中实现java中的slipt方法功能。
最近终于写了一个代码,且测试成功,方法有点笨。
我的思路是,定位,切割,将原字符串切割部分删掉,然后再重复 定位,切割 ,删除。一直到将字符串删没了就处理完了
代码如下:
BEGIN
CALL CopyMessageHeaders();
DECLARE ss CHARACTER;
SET ss = InputLocalEnvironment.Destination;--字符串存放位置
DECLARE po1 INT; -- 定义关键字出现的位置
DECLARE str_p INT; -- 定义开始位置
SET str_p = 1; -- 初始化为起始位置
DECLARE end_p INT; -- 定义结束位置
DECLARE xt1 CHARACTER;
SET end_p = POSITION(';' IN ss);
WHILE end_p>1 DO
SET xt1 = SUBSTRING(ss FROM str_p FOR end_p-1);--切割
IF xt1 IS NOT NULL THEN
--这里组装数组
DECLARE re CHARACTER;
SET re = xt1||';';
SET ss = REPLACE(ss,re);--删掉切割出来的部分
SET end_p = POSITION(';' IN ss);
END WHILE;
-- CALL CopyEntireMessage();
RETURN FALSE;
END;
收起