oracle(plsql)生成流水號
CREATE OR REPLACE FUNCTION fn_no_make(v_prefix VARCHAR2,
v_table_name VARCHAR2,
v_number_col VARCHAR2)
/*
* v_prefix: 編碼前綴兩位
* v_table_name:編碼所在表名
* v_number_col:編碼所在列名
*/
RETURN VARCHAR2 IS
v_old_no VARCHAR2(50); --原編碼
v_new_no VARCHAR2(50); --新編碼
v_old_num NUMBER; --原編碼后三位編號
v_new_num VARCHAR2(10); --新編碼后三位編號
v_date_no VARCHAR2(10); --當(dāng)前日期編號
v_sql VARCHAR2(4000);
BEGIN
v_sql := 'SELECT MAX(' || v_number_col || ') FROM ' || v_table_name;
EXECUTE IMMEDIATE v_sql INTO v_old_no;
v_sql := 'SELECT TO_CHAR(SYSDATE,''YYYYMMDD'') FROM DUAL';
EXECUTE IMMEDIATE v_sql INTO v_date_no;
v_old_num := to_number(substr(v_old_no, 12, 3));
v_new_num := lpad(to_char(v_old_num+1), 3, '0');
IF v_old_no IS NULL OR substr(v_old_no, 3, 8) <> v_date_no THEN
v_new_no := v_prefix || v_date_no || '-' || '001';
ELSE
v_new_no := v_prefix || v_date_no || '-' || v_new_num;
END IF;
RETURN v_new_no;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLERRM);
END fn_no_make;
相關(guān)文章
詳解Oracle數(shù)據(jù)庫中自帶的所有表結(jié)構(gòu)(sql代碼)
這篇文章主要介紹了Oracle數(shù)據(jù)庫中自帶的所有表結(jié)構(gòu),本文給大家介紹的非常詳細(xì),代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-11-11Oracle數(shù)據(jù)庫數(shù)據(jù)丟失恢復(fù)的幾種方法總結(jié)
相信大家無論是開發(fā)、測試還是運(yùn)維過程中,都可能會因為誤操作、連錯數(shù)據(jù)庫、用錯用戶、語句條件有誤等原因,導(dǎo)致錯誤刪除、錯誤更新等問題。當(dāng)你捶胸頓足或嚇得腿軟時,肯定希望有辦法來恢復(fù)這些數(shù)據(jù)。oracle就提供了一些強(qiáng)大的方法或機(jī)制,可以幫到有需要的你。2016-12-12EF 配置Oracle數(shù)據(jù)庫的具體操作方法
下面小編就為大家?guī)硪黄狤F 配置Oracle數(shù)據(jù)庫的具體操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04Oracle數(shù)據(jù)庫服務(wù)器修改操作系統(tǒng)時間的注意事項詳解
在本篇文章里小編給大家整理的是一篇關(guān)于Oracle數(shù)據(jù)庫服務(wù)器修改操作系統(tǒng)時間的注意事項詳解,需要的朋友們可以參考下。2020-03-03Oracle中使用觸發(fā)器(trigger)和序列(sequence)模擬實現(xiàn)自增列實例
這篇文章主要介紹了Oracle中使用觸發(fā)器(trigger)和序列(sequence)模擬實現(xiàn)自增列實例,包含代碼實例,而且小編已經(jīng)測試過了哦,需要的朋友可以參考下2014-07-07VMware中l(wèi)inux環(huán)境下oracle安裝圖文教程(一)
剛剛接觸ORACLE的人來說,從那里學(xué),如何學(xué),有那些工具可以使用,應(yīng)該執(zhí)行什么操作,一定回感到無助。所以在學(xué)習(xí)使用ORACLE之前,首先來安裝一下ORACLE 10g,在來掌握其基本工具。俗話說的好:工欲善其事,必先利其器。作為一個新手,我們還是先在VMware虛擬機(jī)里安裝吧。2014-08-08Oracle數(shù)據(jù)庫的啟動與關(guān)閉方法
這篇文章主要介紹了Oracle數(shù)據(jù)庫的啟動與關(guān)閉方法,需要的朋友可以參考下2013-07-07