-- Create sequence 
create sequence SEQ_1_99999
minvalue 1
maxvalue 99999
start with 3
increment by 1
nocache
cycle;select trim(to_char(sysdate,'yyyy-mm-dd-')) || seq_1_99999.nextval from dual

解决方案 »

  1.   

    1、先建个sequenceCREATE SEQUENCE s_eg
    MAXVALUE 9999
    START WITH 1
    INCREMENT BY 1
    CYCLE;2、建存储过程
    CREATE OR REPLACE FUNCTION cr_se_code RETURN VARCHAR2
    IS
      str1   VARCHAR2(20);
      i      INTEGER;
      Result VARCHAR2(30);
    BEGIN
      str1:=to_char(SYSDATE,'yyyymmdd');
      SELECT s_eg.NEXTVAL INTO i FROM dual;
      str1:=str1||lpad(to_char(i),5,'0'); 
      result:=str1;
      RETURN(Result);
    END cr_se_code;我测试过了。还很好用,测试语句如下:
    DECLARE
      str1 VARCHAR2(20);
    BEGIN
      str1:=cr_se_code();
      dbms_output.put_line(str1);
    END;
      

  2.   

    1、先建个sequenceCREATE SEQUENCE s_eg
    MAXVALUE 9999
    START WITH 1
    INCREMENT BY 1
    CYCLE;应为:
    1、先建个sequenceCREATE SEQUENCE s_eg
    MAXVALUE 9999
    START WITH 1
    INCREMENT BY 1
    CYCLE;
      

  3.   

    不能指定00001
    这个我在过程中给你处理了,测一下你就明白了,
    是通过lpad(to_char(i),5,'0'),使1变为串'00001'的.