本帖最后由 zjmask 于 2011-06-24 14:54:26 编辑

解决方案 »

  1.   


    SQL> select substr('B000382967',1,4)||(substr('B000382967',5)+1) t
      2  from dual;
     
    T
    ----------
    B000382968
      

  2.   

    你的ID规则应该是"B"+9位数字select 'B' + to_char(to_number(substr(max(ID),2))+1,'FFFFFFFFF')
    from 表
      

  3.   


    sorry 笔误,应该是:
    select 'B' + to_char(to_number(substr(max(ID),2))+1,'FM000000000')
    from 表
      

  4.   

    2楼的不行,没有考虑到前四位是可变的,随着序列增加不一定是B000,会进位变成B0012,3的是正解,不过要改一下 
    select 'B'||to_char(to_number(substr(max(id),2))+1,'FM000000000') from 表