oracle plsql 生成流水號

2022-09-24 14:21:12 字數 1298 閱讀 1635

複製** **如下:

create or replace function fn_no_make(v_prefix     varchar2程式設計客棧,

v_table_name varchar2,

vpniouzcrj                          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); --當前日期編號

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_c''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;

本文標題: oracle(plsql)生成流水號

本文位址:

生成流水號碼

在程式設計中,尤其是針對企業應用的開發,不可以避免的會要生成大量的編號,比如訂單編號 入庫編號等。現在利用sql的儲存過程可以方便的實現自動編號,可以大大的提高程式的復用和減少 的編寫。主要是利用sql中的convert函式來對日期進行格式化。比如要做這樣的乙個編號結構 標識 2位 日期時間 14位...

SQL生成流水號

經過了幾次的測試終於成功了 declare year int,month int,day int,temp no varchar 12 needno varchar 4 no varchar 20 number varchar 50 randno varchar 50 nu varchar 10 s...

php生成流水號

function createn i else if i 100 else if i 1000 else echo substr 2012050010 0,6 echo createn 2 2 echo createn 9 9 echo createn 10 10 echo createn 11 1...