互联网服务wmb

ESQL的字符串处理经验分享

前段时间朋友问了一个问题,怎么在ESQL中实现java中的slipt方法功能。最近终于写了一个代码,且测试成功,方法有点笨。我的思路是,定位,切割,将原字符串切割部分删掉,然后再重复 定位,切割 ,删除。一直到将字符串删没了就处理完了代码如下: BEGIN CALL CopyMessageHeaders(); DECLARE s...显示全部
前段时间朋友问了一个问题,怎么在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;
收起
参与4

查看其它 2 个回答wenzi5a321的回答

wenzi5a321wenzi5a321软件架构设计师上海派拉软件
这段代码实现的是java中的slipt(";")
互联网服务 · 2015-01-09
浏览895

回答者

wenzi5a321
软件架构设计师上海派拉软件
擅长领域: 中间件esb软件开发

wenzi5a321 最近回答过的问题

回答状态

  • 发布时间:2015-01-09
  • 关注会员:1 人
  • 回答浏览:895
  • X社区推广