Oracle生成單據(jù)編號(hào)存儲(chǔ)過(guò)程的實(shí)例代碼
Oracle生成單據(jù)編號(hào)存儲(chǔ)過(guò)程,在做訂單類(lèi)似的系統(tǒng)都可能會(huì)存在訂單編號(hào)不重復(fù),或是流水號(hào)按日,按年,按月進(jìn)行重新編號(hào)。
可以參考以下存儲(chǔ)過(guò)程
CREATE OR REPLACE procedure Pro_GetBillNO(TypeTable in varchar2,cur_mycursor out sys_refcursor) as DReceiptCode varchar2(40); DReceiptName varchar2(50); DPrefix1 varchar2(50); DISO varchar2(50); DIsAutoCreate varchar2(20); DPrefix2 varchar2(20); DPrefix3 varchar2(20); DDateValue date; DNO number; DLength number; DResetType number; DSeparator varchar2(20); DReturnValue varchar2(50); strSql varchar2(1000); begin DReturnValue:=''; select "ReceiptCode","ReceiptName","Prefix1","ISO","IsAutoCreate","Prefix2","Prefix3","DateValue","NO","Length","ResetType","Separator" into DReceiptCode,DReceiptName,DPrefix1,DISO,DIsAutoCreate,DPrefix2,DPrefix3,DDateValue,DNO,DLength,DResetType,DSeparator from "SysReceiptConfig" where "ReceiptCode"=TypeTable; if to_number(DResetType)>0 then if DIsAutoCreate=1 THEN if DResetType=1 then --按年份 if to_number(to_char(sysdate,'yyyy')) <>to_number(to_char(DDateValue,'yyyy')) then update "SysReceiptConfig" set "NO"=1,"DateValue"=to_date(sysdate) where "ReceiptCode"=TypeTable; else update "SysReceiptConfig" set "NO"="NO"+1 where "ReceiptCode"=TypeTable; end if; --年份 end if;--DResetType=1 if DResetType=2 then --按月份 if to_number(to_char(sysdate,'MM')) <>to_number(to_char(DDateValue,'MM')) then update "SysReceiptConfig" set "NO"=1,"DateValue"=to_date(sysdate) where "ReceiptCode"=TypeTable; else update "SysReceiptConfig" set "NO"="NO"+1 where "ReceiptCode"=TypeTable; end if; --月份 end if;--DResetType=2 if DResetType=3 then --按日 if to_number(to_char(sysdate,'dd')) <>to_number(to_char(DDateValue,'dd')) then update "SysReceiptConfig" set "NO"=1,"DateValue"=to_date(sysdate) where "ReceiptCode"=TypeTable; else update "SysReceiptConfig" set "NO"="NO"+1 where "ReceiptCode"=TypeTable; end if; --月份 end if;--DResetType=3 else update "SysReceiptConfig" set "NO"="NO"+1 where "ReceiptCode"=TypeTable; end if;--DResetType end if; strSql:=' select * from "SysReceiptConfig" where 1=1 '; strSql:=strSql ||' and "ReceiptCode"='''||TypeTable||''''; open cur_mycursor for strSql; end;
以上所述是小編給大家介紹的Oracle生成單據(jù)編號(hào)存儲(chǔ)過(guò)程的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- oracle 存儲(chǔ)過(guò)程、函數(shù)和觸發(fā)器用法實(shí)例詳解
- windows中oracle存儲(chǔ)過(guò)程加密的實(shí)例代碼
- Oracle帶輸入輸出參數(shù)存儲(chǔ)過(guò)程(包括sql分頁(yè)功能)
- oracle中print_table存儲(chǔ)過(guò)程實(shí)例介紹
- Mybatis調(diào)用Oracle存儲(chǔ)過(guò)程的方法圖文詳解
- 詳解Oracle調(diào)試存儲(chǔ)過(guò)程
- Oracle存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)創(chuàng)建方法(詳解)
- Oracle存儲(chǔ)過(guò)程及調(diào)用
- Oracle存儲(chǔ)過(guò)程、包、方法使用總結(jié)(推薦)
- Oracle數(shù)據(jù)庫(kù)創(chuàng)建存儲(chǔ)過(guò)程的示例詳解
相關(guān)文章
Oracle解決ORA-01034:?ORACLE?not?available問(wèn)題的辦法
這篇文章主要給大家介紹了關(guān)于Oracle解決ORA-01034:?ORACLE?not?available問(wèn)題的辦法,今天連接oracle出現(xiàn)如下錯(cuò)誤,在網(wǎng)查了相關(guān)資料說(shuō)出現(xiàn)ora-01034錯(cuò)誤的原因是因?yàn)閿?shù)據(jù)庫(kù)的控制文件沒(méi)有加在startup mount后,需要的朋友可以參考下2024-02-02
Oracle批量投入數(shù)據(jù)方法總結(jié)
這篇文章主要介紹了Oracle批量投入數(shù)據(jù)方法總結(jié),文中通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有的一定的幫助,需要的朋友可以參考下2025-01-01
Linux服務(wù)器下oracle實(shí)現(xiàn)rman自動(dòng)備份的方式
為確保oracle數(shù)據(jù)庫(kù)數(shù)據(jù)的安全和一致性,一般我們都需要利用備份手段進(jìn)行數(shù)據(jù)庫(kù)的備份,在oracle數(shù)據(jù)庫(kù)中,rman因其強(qiáng)大的功能和完善的手段,成為數(shù)據(jù)庫(kù)備份的首選,故以下通過(guò)兩種方式配置腳本,實(shí)現(xiàn)rman自動(dòng)備份,需要的朋友可以參考下2024-11-11
Oracle如何獲取指定表名稱(chēng)批量修改表中的字段類(lèi)型
這篇文章主要給大家介紹了關(guān)于Oracle如何獲取指定表名稱(chēng)批量修改表中字段類(lèi)型的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)使用oracle具有一定的參考價(jià)值,需要的朋友可以參考下2023-08-08
Oracle數(shù)據(jù)塊實(shí)現(xiàn)原理深入解讀
Oracle對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)文件(datafile)中的存儲(chǔ)空間進(jìn)行管理的單位是數(shù)據(jù)塊(data block),本文將詳細(xì)介紹2012-11-11

