国产高清在线免费观看-国产高清在线免费无码-国产高清在线男人的天堂-国产高清在线视频-国产高清在线视频精品视频-国产高清在线视频伊甸园

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

一個用來生成流水號的存儲過程

admin
2011年3月3日 16:59 本文熱度 3575
 我們經常需要用一個流水號來唯一表示一條數據,我們有時采用隊列來自動生成一個唯一的流水號,但是采用隊列經常不能滿足我們的需求,比如說,這個隊列只能設定一個最小值,最大值,然后進行累加,不能將產生這個流水號的日期包括今這個流水號中;一種類型就要新建一個隊列等。
下面這個存儲過程可以產生一個流水號,它的格式是當前日期(格式YYYYMMDD)+6位的流水號數字,不同的類型只要給出一個不同的類型名稱就可以了。在使用這個存儲過程前,要先創建一個表來保存不同的類型,表結構如下:
create table T_GENID
(
  CLASS   NUMBER(2) not null,
  GENDATE CHAR(8) not null,
  ID      VARCHAR2(12) not null
)
tablespace SERVICE_MAIN_DAT
  pctfree 10
  pctused 80
  initrans 1
  maxtrans 255
  storage
  (
    initial 1M
    next 1M
    minextents 1
    maxextents unlimited
    pctincrease 0
  );
-- Create/Recreate primary, unique and foreign key constraints
alter table T_GENID
  add constraint PK_GENID primary key (CLASS,ID)
  using index
  tablespace SERVICE_MAIN_IDX
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 1M
    next 1M
    minextents 1
    maxextents unlimited
    pctincrease 0
  );

存儲過程如下:
CREATE OR REPLACE PROCEDURE p_GetSerialNo
(
  i_Type                  IN     VARCHAR2,           --流水號的類型
  o_SerialNo              OUT    VARCHAR2            --返回流水號
) IS
  v_Dat                          VARCHAR2(10);
  v_SerialNum                    NUMBER(7);
BEGIN
  --取系統日期生成需要的字符串
  v_Dat := TO_CHAR(SYSDATE,('YYYYMMDD'));

  --生成產生流水號的序號
  BEGIN
    SELECT Decode(GENDATE,v_Dat,(ID+1),1)
      INTO v_SerialNum
      FROM T_GENID WHERE CLASS=i_Type FOR UPDATE;
  EXCEPTION
    WHEN NO_DATA_FOUND THEN
      v_SerialNum:= 1;
      INSERT INTO T_GENID(CLASS,GENDATE,ID)
        VALUES (i_Type,v_Dat,v_SerialNum);

    WHEN TOO_MANY_ROWS THEN
      SELECT NVL(MAX(ID)+1,1)
        INTO v_SerialNum
        FROM T_GENID WHERE CLASS=i_Type;

      DELETE t_AGT_GENID WHERE CLASS=i_Type;
      INSERT INTO T_GENID(CLASS,GENDATE,ID)
        VALUES (i_Type,v_Dat,v_SerialNum);
  END;

  --修改流水號參數
  UPDATE T_GENID
     SET GENDATE = v_Dat,
         ID = v_SerialNum WHERE CLASS=i_Type;
  COMMIT;
  --得到需要的流水號
  o_SerialNo := v_Dat||Lpad(v_SerialNum,6,'0');
EXCEPTION
  WHEN OTHERS THEN
    o_SerialNo := NULL;
END;
/

使用方法很簡單,就是在pl/sql中調用這個存儲過程,給其設置一個類型就行了,如下:
CREATE OR REPLACE PROCEDURE p_Test
(
)
IS
  v_serId VARCHAR2(14);
BEGIN
  P_Agt_GetSerialNo ('test',v_serId);   --生成流水號,放到變量v_serId中,第一個參數就是給其設置的類型了
 
  INSERT INT t_test (testid) VALUES(v_serId);--將產生的流水號插入表中
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
    ROLLBACK;
END;
/

該文章在 2011/3/3 16:59:00 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 亚洲av中文无码乱人伦在线播放 | 欧美成人精品a8198v无码 | 亚洲精品无码高潮喷水A片在线 | 国产午夜精品一区二区三区 | 加勒比中文无码系列 | 性一乱一交一A片.看A片 | 亚洲国产成人久久久久午夜无码鲁丝片一二三区综合直播嫩草 | 亚洲精品无码成人久久影院 | 性色欲情网站IWWW九文堂 | 国产美女主播在线精品 | 国产麻豆放荡AV剧情演绎 | 麻豆国风旗袍初次登场 | 亚洲精品天堂在线观看 | 精品日韩欧美一区国产三区 | 亚洲中文字幕日产 | 亚洲中文字幕无码一区日日添 | 亚洲无吗精品AV九九久久 | 久久国产精品偷任你爽任你 | 麻豆久久久久久久 | 永久免费aⅴ无码网站在线观看 | 偷自拍亚洲视频在线观看 | 亚洲国产精品无损 | 国产精品免费看久久久8 | 麻豆果冻传媒视频在线 | 日韩少妇内射免费播放 | 精品国产人妻国语 | 精东传媒VS天美传媒在线老牛 | 亚洲精品成人久久电影网 | 亚洲欧洲日产国码高潮αv 亚洲欧洲日产国码韩国 | 最新亚洲av综合av一区怡红院 | 国产在线视频一区二区高 | 日韩成人无码 | 苍井空A级在线观看网站 | 亚洲欧美日韩在线综合第 | 欧美精品高清无码 | 久久国产hezyo无码dvd不卡 | 2025无码专区人妻系列日韩 | 亚洲精品国产成人在线观看 | 久久天堂av综合合色蜜桃网 | 亚洲三级影院 | 在线观看免费的韩国剧情电影电视剧免费电视剧 |