在实际业务处理中有些单号需要自动增长,但又不能用自增列代替
如:  P2003110600001   -- 第一位P表示采购单,20031106表示日期,后五位是流水号。请问在oracle中如何设置带 字符+年月日+五位序号 的自增编号?

解决方案 »

  1.   

    P2003110600001该列作为一个索引如何?用sequence生成主键
      

  2.   

    可以考虑用触发器实现.
    Sequence只能生成数字,不能有字母.
      

  3.   

    用sequence应该也可以吧??
    select 'P'|| to_char(sysdate,'yyyymmdd') || substr(to_char('00000'||er.nextval),2) from dual;
    不过后五位应该是每天都要从00001开始才对,那样的话序列就不行了
      

  4.   

    select 'P'|| to_char(sysdate,'yyyymmdd') || lpad(er.nextval, 5, '0')
    from dual;
      

  5.   

    select 'P'|| to_char(sysdate,'yyyymmdd') || lpad(er.nextval, 5, '0')
    from dual;