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;