好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Oracle 中生成流水號的方法

Oracle 中生成流水號的方法

熱門標簽:慧營銷crm外呼系統丹丹 開發外呼系統 愛客外呼系統怎么樣 哪個400外呼系統好 百度地圖標注途經點 山東crm外呼系統軟件 圖吧網站地圖標注 地圖標注養老院 哈爾濱電話機器人銷售招聘

思路:

通過一個流水號表,記錄當前最大的流水號,以便下次取用。每次取號時,將流水號表更新成大的。

涉及的表:

  流水號表hp_no:  

字段 類型
TYPE_NAME VARCHAR2(100)
START_NO VARCHAR2(100)
CURRENT_NO VARCHAR2(100)

代碼:

1)通過函數得到最大值。 有三個參數,

  第一個參數是類型,便于得到不同的流水號。

  第二個參數是前綴,用于在流水號前邊放置特別的字符。

  第三個參數是生成的流水號長度。

代碼

CREATE OR REPLACE FUNCTION Hp_Test_GetNo(
P_TYPE_NAME IN VARCHAR2 DEFAULT '', --類型 參數1
P_START_NO IN VARCHAR2, --前綴 參數2
P_LENGTH IN NUMBER --得到流水號長度 參數3
)
RETURN VARCHAR2 --返回類型
IS
V_RESULT VARCHAR2 (100) := ''; --結果 變量1
V_CURRENT_NO VARCHAR2 (100) := ''; --當前值 變量2
V_NUM NUMBER := 0; --補值 變量3
V_START_NO VARCHAR2(100); --前綴 變量4
V_ROWID VARCHAR2 (100); --要更新行的RowID 變量4
BEGIN
V_START_NO :=P_START_NO; --參數值賦給變量
SELECT COUNT (*)
INTO V_NUM
FROM HP_NO
WHERE TYPE_NAME = P_TYPE_NAME AND START_NO = P_START_NO; --得到類型與前綴相同值的數量,主要用于判斷是否產生過流水號
--判斷是否有資料 沒有則產生初始值插入庫中
IF V_NUM = 0 --沒有記錄過時
THEN
V_CURRENT_NO := LPAD ('1', P_LENGTH, '0'); --得到P_length長的0001流水號
V_RESULT := V_CURRENT_NO; --將前綴與流水號相連起來
INSERT INTO HP_NO(TYPE_NAME, START_NO, CURRENT_NO)
VALUES (P_TYPE_NAME, P_START_NO, V_CURRENT_NO); --將新的最大值記錄下來
ELSE 
SELECT ROWID, CURRENT_NO + 1
INTO V_ROWID, V_CURRENT_NO
FROM HP_NO
WHERE TYPE_NAME = P_TYPE_NAME AND START_NO = P_START_NO; --得到最大值加1
V_CURRENT_NO := LPAD (V_CURRENT_NO, P_LENGTH, '0'); 
UPDATE HP_NO
SET CURRENT_NO = V_CURRENT_NO
WHERE ROWID = V_ROWID; --更新最大值
END IF; 
IF V_START_NO IS NULL OR V_START_NO='' THEN
V_RESULT := V_CURRENT_NO;
ELSE
V_RESULT :=V_START_NO || V_CURRENT_NO;
END IF;
RETURN V_RESULT;
END;

使用存儲過程調用函數的方法:

代碼

--調用function存儲過程
CREATE OR REPLACE PROCEDURE Hp_Pro_GetTestNo
(
v_FirstLetter in varchar2,
v_Result out varchar2
)
IS
v_FirstValue varchar2(30);
v_SystDate varchar2(30);
BEGIN
select to_char(sysdate,'yyyymm') into v_SystDate from dual;
v_FirstValue:=(v_FirstLetter || v_SystDate);
v_Result:=hp_test_getno('HpTest' ,v_FirstValue,4);
END;

結果:

  調用存儲過程Hp_Pro_GetTestNo('hp',4);

  結果為:hp2016060001

其它思考:

一、新增時無須顯示流水號,如得到得到連續流水號

方法:

  采用流水號子表,此表用于保存沒有用過的流水號。當用戶取號時,首選判斷子表是否含有流水號,當有時,取出一個,并刪除此個(防止別另外用戶取用);否則調用主表得到新流水號。

當插入失敗則將當前流水號保存到流水號子表中,供下次取用。

當刪除時,將當前流水號保存到流水號子表中,供下次取用。

二、新增時須顯示流水號,如得到得到連續流水號

方法:

  采用流水號子表,此表用于保存沒有用過的流水號。當用戶取號時,首選判斷子表是否含有流水號,當有時,取出一個,并刪除此個(防止別另外用戶取用);否則調用 主表得到新流水號。

當用戶不保存或插入失敗則將當前流水號保存到流水號子表中,供下次取用。

當刪除時,將當前流水號保存到流水號子表中,供 下次取用。

您可能感興趣的文章:
  • oracle(plsql)生成流水號

標簽:周口 甘肅 青島 承德 和田 武漢 固原 開封

巨人網絡通訊聲明:本文標題《Oracle 中生成流水號的方法》,本文關鍵詞  Oracle,中,生成,流水,號的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle 中生成流水號的方法》相關的同類信息!
  • 本頁收集關于Oracle 中生成流水號的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: aa制生活| 亚洲欧美精品专区极品| 四级无码A片打真军| 国产精品久久碰碰现在自在拍 | 国产成人免费在线视频| 精品一区狼人国产在线| 泰国情欲片寂寞的寡妇| 国产无线一线二线| 日本视频免费在线| 人伦人与牲囗性恔配视频| 毛片AV精品99传媒| freeⅹxx69性欧美按摩| 久久久99国产精品免费| 抖抈app入口免费| 日本乱码伦视频免费播放| 看亚洲色图| 九九视频免费看| 国产农村一级特黄妇女A片一| 久久无码潮喷A片一区二区| 在线观看免费精品国自产| 日韩在线视频区| 青草色视频| 男女一起差差差免费视频30分钟| 亚洲精品黑色丝袜系列| www.激情五月.com| 人人揉揉揉人人捏人人看| 91丨国产丨白浆秘?洗澡网站| a级日本高清免费看| 情人下面很粗做得好爽| 亚洲AⅤ无码精品色情午夜在线| 动态图第960期XXOO| 岳好紧好紧我要进了| av网站大全| 向日葵视频app污网址| 韩彩英唯一一部颜色满天星的 | 蜜桃成熟时5| 337p大尺度啪啪人体午夜| 欧美成人乱码视频XXXX| rylskyart超大尺度人体| 被两根粗大的??巴捣出白浆| 《甜性涩爱》韩国无删减|