Java Fly

          Java&Oracle
          隨筆 - 12, 文章 - 20, 評論 - 27, 引用 - 0
          數據加載中……

          6位數的數字第一位是年份后面5位是遞增數字從00001開始

          要實現生成一個6位數的數字第一位是年份后面5位是遞增數字從00001開始,怎么辦?如今年是03年,生成第一個為300001,第二個為30002....

          先創sequence:
          create sequence seq_ticket_code increment by 1 start with 100001 maxvalue 99999999 cycle;
          再創函數:
          create or replace function sf_GetTicketCode return number
          is
          ticket_code number(10);
          --ticket_seq number(10);
          --ticket_year number(1);
          begin
          select to_number(to_char(sysdate,'y'))||substr(to_char(seq_ticket_code.nextval),2,5)
          into ticket_code from dual;
          return ticket_code;
          exception
          when others then
          return null;
          end;

          ////
          SQL> select sf_GetTicketCode from dual;

          SF_GETTICKETCODE
          ----------------
          300010

          posted on 2006-04-23 13:30 Java Fly 閱讀(1266) 評論(0)  編輯  收藏 所屬分類: Oracle命題

          主站蜘蛛池模板: 滦南县| 康乐县| 舒兰市| 乐山市| 昆山市| 宝坻区| 乐平市| 黎平县| 金华市| 县级市| 安丘市| 阿坝县| 九龙县| 巴东县| 巫山县| 恩施市| 韶关市| 漯河市| 安福县| 蛟河市| 济源市| 江永县| 大洼县| 教育| 井陉县| 西畴县| 建始县| 辽宁省| 兴宁市| 翼城县| 格尔木市| 孟州市| 息烽县| 辽宁省| 义马市| 桃源县| 沧源| 焉耆| 定安县| 马关县| 威信县|