plsql字符串截取



declare

   
    type t_varray is table of varchar2(20);

    
    var_str_devCode_all varchar2(10000):='11#22#33#'; --注意格式:每个字串后面都带有一个特殊符号
    var_arr_devCode_cstr t_varray:=t_varray(); --声明集合

    var_str_devCode_sign varchar2(2);
    var_str_devCode_sign_count number;
    var_substr_devCode_lowIndex number;
    var_substr_devCode_highIndex number;
    var_substr_devCode_temp varchar(20);


    var_str_devType_all varchar2(10000):='手机#宽带#手机#'; --注意格式:每个字串后面都带有一个特殊符号
    var_arr_devType_cstr t_varray:=t_varray(); --声明集合

    var_str_devType_sign varchar2(2);
    var_str_devType_sign_count number;
    var_substr_devType_lowIndex number;
    var_substr_devType_highIndex number;
    var_substr_devType_temp varchar(20);
   
begin
    var_str_devCode_sign_count :=length(var_str_devCode_all)-length(replace(var_str_devCode_all,var_str_devCode_sign,'');
    var_substr_devCode_lowIndex :=1; -- 截取的第一个字符串的下标是1
    var_substr_devType_lowIndex :=1; -- 截取的第一个字符串的下标是1
    FOR loop_index IN var_str_devCode_sign_count LOOP
 
        var_substr_highIndex :=instr(var_str_devCode_all,var_str_devCode_sign ,1,loop_index);-- 第i个特殊符号所在的位置
 var_substr_devCode_temp :=substr(var_str_devCode_all var_substr_devCode_lowIndex ,var_substr_devCode_highIndex -1) -- 截取你想要的字符串
        var_arr_devCode_cstr(loop_index):=var_substr_devCode_temp;
        var_substr_devCode_lowIndex =instr(var_str_devCode_all ,var_str_devCode_sign,1,loop_index)+1; -- 后移一位

 var_substr_highIndex :=instr(var_str_devType_all,var_str_devType_sign ,1,loop_index);-- 第i个特殊符号所在的位置
 var_substr_devType_temp :=substr(var_str_devType_all var_substr_devType_lowIndex ,var_substr_devType_highIndex -1) -- 截取你想要的字符串
        var_arr_devType_cstr(loop_index):=var_substr_devType_temp;
        var_substr_devType_lowIndex =instr(var_str_devType_all ,var_str_devType_sign,1,loop_index)+1; -- 后移一位
       
    END LOOP;

    -- instr(var_str_all ,var_str_sign ,1,2) --  函数查找【字段】中从第【1】位开始,第【2】个【#】位置。
    -- substr(字段,1,查出的位置-1) 截取你想要的字符串

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水上冰石

希望能帮助到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值