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

