複製** **如下:
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...