101543-国外出差审批流程 [ 0|P,106-管理员 ]
怎么截取 [ 后面的 或者把 [ 的全部替换 或者把 [ 删掉.
然后再截取 前面的ID:101543 我想要的就是前面的ID strc varchar2(500);
--ca c_array;
et_id2 varchar(500);
tmpStr varchar(100);
likeStr varchar2(500);
template_id2 varchar(200);
begin
strc:=et_id;
--dbms_output.put_line(strc);
tmpStr:='';
likeStr:='';
loop
p:=instr(strc,'-',1);
exit when p=0;
tmpStr:=substr(strc,1,p-1);
likeStr:=likeStr||','||tmpStr;
p:=instr(strc,'|',1);
exit when p=0;
strc:=substr(strc,p+1,length(strc));
这是我写的截取前面ID 但是后来发先传过来的字符串 有的里面不只有一个 “-” 符号。
一般第二个“-”符号都出现"[ ]"里面所以要替换或则删除。 注意:字符串有可能2条。有可能10条。是个动态的:
101554-国内发货申请流程 [ GNF-20130116-007 ] |101552-国内发货申请流程 [ GNF-20130116-005 ] 这里就是2条
怎么截取 [ 后面的 或者把 [ 的全部替换 或者把 [ 删掉.
然后再截取 前面的ID:101543 我想要的就是前面的ID strc varchar2(500);
--ca c_array;
et_id2 varchar(500);
tmpStr varchar(100);
likeStr varchar2(500);
template_id2 varchar(200);
begin
strc:=et_id;
--dbms_output.put_line(strc);
tmpStr:='';
likeStr:='';
loop
p:=instr(strc,'-',1);
exit when p=0;
tmpStr:=substr(strc,1,p-1);
likeStr:=likeStr||','||tmpStr;
p:=instr(strc,'|',1);
exit when p=0;
strc:=substr(strc,p+1,length(strc));
这是我写的截取前面ID 但是后来发先传过来的字符串 有的里面不只有一个 “-” 符号。
一般第二个“-”符号都出现"[ ]"里面所以要替换或则删除。 注意:字符串有可能2条。有可能10条。是个动态的:
101554-国内发货申请流程 [ GNF-20130116-007 ] |101552-国内发货申请流程 [ GNF-20130116-005 ] 这里就是2条
然后拼装 就得到了