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条