在写编号的时候就取
substring(to_char(yourdatafld,'yyyy'),3,2)||......

解决方案 »

  1.   

    可以实现但有一个前提,你存储的必须是分开的
    就是要你自己录入2003,2004等。当库中有03YC0001这样的数据时,前面的03要从一个地方取得,sysdate都可以select 
        nvl(to_number(substr(max(编号),5,4)),0)+1 
    from 
        talbe_name 
    where 
        substr(编号,1,2)=co_char(sysdate,'YY')这样,如果现在是2004年,以前只有03开头的编号,这个语句将得到数字1,剩下的应该好搞定吧
    如果现在是03YC0001,则得到数字2,也实现了数字加1的功能。
      

  2.   

    当数据库时间由2003变为2004时,做一个JOB,将一个sequence是当前值改为0。