如:“123+456666+顺利”,我想提取第一个“+”号以前的字符前的给一个变量aaaa,第一个“+“号到第二个“”+号以前的字符的字符给一个变量bbbb,最后一个“+”号后的字符后的给一个变量cccc
最后得到的结果为:aaaa:='123',bbbb:='456666',cccc:='顺利'

解决方案 »

  1.   

    SQL> declare
      2  l_str varchar2(200) := '123+456666+顺利';
      3  aaa varchar2(200);
      4  bbb varchar2(200);
      5  ccc varchar2(200);
      6  begin
      7  aaa := substr(l_str, 0, instr(l_str,'+',1)-1);
      8  bbb := substr(l_str, instr(l_str,'+',1)+1, instr(l_str,'+',1,2)-instr(l_str,'+',1)-1);
      9  ccc := substr(l_str, instr(l_str,'+',1,2)+1);
     10  dbms_output.put_line('aaa := '|| aaa ||chr(10)|| 'bbb := ' || bbb || chr(10) || 'ccc := ' || ccc );
     11  end;
     12  /aaa := 123
    bbb := 456666
    ccc := 顺利PL/SQL procedure successfully completed
      

  2.   

    现加分到50给xiaoxiao1984(笨猫儿) ,非常感谢!
      

  3.   

    现加分到50给xiaoxiao1984(笨猫儿) ,非常感谢!
      

  4.   

    现加分到50给xiaoxiao1984(笨猫儿) ,非常感谢!