互联网服务wmb

ESQL的字符串处理经验分享

前段时间朋友问了一个问题,怎么在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

3同行回答

f9511619f9511619软件开发工程师siren
赞一个,不过这个函数我自己也已经写好了。显示全部
赞一个,不过这个函数我自己也已经写好了。收起
系统集成 · 2015-06-01
浏览893
liushaoyiliushaoyi技术经理华润
焦总又出手了显示全部
焦总又出手了收起
互联网服务 · 2015-01-13
浏览878
wenzi5a321wenzi5a321软件架构设计师上海派拉软件
这段代码实现的是java中的slipt(";")显示全部
这段代码实现的是java中的slipt(";")收起
互联网服务 · 2015-01-09
浏览901

提问者

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

问题状态

  • 发布时间:2015-01-09
  • 关注会员:1 人
  • 问题浏览:7167
  • 最近回答:2015-06-01
  • X社区推广