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下的Java分頁功能_動力節(jié)點(diǎn)Java學(xué)院整理
分頁的時(shí)候返回的不僅包括查詢的結(jié)果集(List),而且還包括總的頁數(shù)(pageNum)、當(dāng)前第幾頁(pageNo)等等信息,所以我們封裝一個(gè)查詢結(jié)果PageModel類,具體實(shí)現(xiàn)代碼,大家參考下本文2017-08-08
sql – Oracle中匿名TABLE/VARRAY類型示例詳解
這篇文章主要給大家介紹了關(guān)于Oracle中匿名TABLE/VARRAY類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用oracle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
oracle 12c因誤刪pdb數(shù)據(jù)文件導(dǎo)致整個(gè)數(shù)據(jù)庫打不開的解決方法
這篇文章主要給大家介紹了關(guān)于oracle 12c因誤刪pdb數(shù)據(jù)文件導(dǎo)致整個(gè)數(shù)據(jù)庫打不開問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧。2017-10-10
[Oracle] CPU/PSU補(bǔ)丁安裝詳細(xì)教程
Oracle CPU的全稱是Critical Patch Update, Oracle對于其產(chǎn)品每個(gè)季度發(fā)行一次安全補(bǔ)丁包,通常是為了修復(fù)產(chǎn)品中的安全隱患,以下是對CPU/PSU補(bǔ)丁安裝的具體操作步驟進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考2013-07-07
Oracle數(shù)據(jù)庫常見字段類型大全以及超詳細(xì)解析
在Oracle數(shù)據(jù)庫中查詢特定表的字段個(gè)數(shù)通常需要使用SQL語句來完成,這篇文章主要介紹了Oracle數(shù)據(jù)庫常見字段類型大全以及超詳細(xì)解析,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
oracle連接ODBC sqlserver數(shù)據(jù)源的詳細(xì)步驟
這篇文章主要介紹了oracle連接sqlserver數(shù)據(jù)源ODBC的詳細(xì)步驟,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07
Linux 創(chuàng)建oracle數(shù)據(jù)庫的詳細(xì)過程
這篇文章主要介紹了Linux 創(chuàng)建oracle數(shù)據(jù)庫,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

