写存储过程时,用到拆分字符串,第一个传入参数为带分割符的字符串,第二个为分隔符的个数,下面是单提出来的分割字符串方法,
create or replace procedure split(
i_PageIds in varchar2, --原页面pageId组,以字符串形式传入,如:1001,1511,
i_PageIdsCount in number --pageId个数 (也是分隔符逗号的个数,记得字符串的末尾也加逗号)
)
is
v_pageId number(20); --保存拆分字符串中的值
v_i number(20); --循环中的索引
v_strlength number(20); --截取字符串长度
v_startIndex number(20); --截取字符串开始位置
v_tempIndex number(20); --上一次截取字符串开始位置
begin
--循环获取获取pageId字符串中的所有pageId
for v_i in 1..i_PageIdsCount loop
if (v_i=1)
then
v_startIndex:=1;
v_strlength:=instr(i_PageIds,',',1,1)-1;
else
v_tempIndex:=instr(i_PageIds,',',1,v_i-1);
v_strlength:=instr(i_PageIds,',',1,v_i)-v_tempIndex-1;
v_startIndex:=v_tempIndex+1;
end if;
--获取页面数组中的pageId值
v_pageId:=to_number(substr(i_PageIds,v_startIndex,v_strlength));
--v_pageId即为拆分后的值
end loop;
end split;