• 字符匹配


    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所在位置。

  • 相关阅读:
    JZ2440开发板开发环境搭建
    20180730-宿主机开发环境搭建
    20180319-双网卡电脑同时上内外网
    嵌入式ARM板子起步
    20180127-服务器开发环境搭建
    Pool多进程示例
    Python基础-day01
    解释型语言与编译型语言
    C 编译过程浅析
    博客奇谭
  • 原文地址:https://www.cnblogs.com/devin818/p/5210739.html
Copyright © 2020-2023  润新知