zoukankan      html  css  js  c++  java
  • 字符匹配

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

  • 相关阅读:
    diary and html 文本颜色编辑,行距和其它编辑总汇
    bash coding to changeNames
    virtualbox ubuntu 网络连接 以及 连接 secureCRT
    linux 学习6 软件包安装
    linux 学习8 权限管理
    vim 使用2 转载 为了打开方便
    ubuntu
    linux 学习15 16 启动管理,备份和恢复
    linux 学习 14 日志管理
    linux 学习 13 系统管理
  • 原文地址:https://www.cnblogs.com/devin818/p/5210739.html
Copyright © 2011-2022 走看看