首页 > 其他 > 详细

字符匹配

时间:2016-02-23 18:53:26      阅读:195      评论:0      收藏:0      [点我收藏+]
create or replace procedure gx_add_time_apply (
  resultStr out varchar,
 v_apply in CHAR
 ) is
v_sql char(2000);
v_cnt number;
c_m char;
v_n number;
v_m number;
v_r varchar(200);
v_time varchar(200);
v_u varchar(200);
v_k number;
c number;
v_message varchar(200);
v_date char(30);
v_apply_no number;
Begin
--初始化消息
v_message:=‘‘;
 --请自行编辑存储过程函数体
 ---选出空间表信息v_apply的长度
 v_apply_no:=gx_apply_no.nextval;
select length(trim(v_apply)) -
      length(replace(trim(v_apply), ‘;‘, ‘‘))
          into v_n from dual;
	-- for循环选出每个;下的字符串,并截取出时间段
   FOR v_m IN 1 .. (v_n + 1) LOOP
    v_r := regexp_substr(v_apply, ‘[^;]+‘, 1, v_m);
    v_time :=substr(v_r,1,11);
     --在字符串v_r上循环,选出为1的位置
     for v_k in 2..8 loop
	 v_u := regexp_substr(v_r,‘[^&]+‘,1,v_k);
	 if v_u=1 then
       --时间段空间位置记录
        v_message:=v_message||v_time||v_m||(v_k-1);
       end if;
	 end loop;

    END LOOP;
    f v_message!=‘‘ or v_message is not null then
     ResultStr := v_message;
     return;
    end if;
    ResultStr := ‘success:提交成功‘;
End;

 上面是给定字符串v_apply=00:00-05:00&0&1&3&0&1&0&1;00:05-10:00&0&0&0&0&1&0&1,此类格式字符串确定1位置的程序。使用了两次循环先选取出字符串00:00-05:00&0&1&3&0&1&0&1,截取时间段00:00-05:00,然后在找出1的位置。循环,知道找出所有1所在位置。

字符匹配

原文:http://www.cnblogs.com/devin818/p/5210739.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!