Oracle 函数“自动生成订单号”
时间:2021-07-01 10:21:17
帮助过:8人阅读
create or replace function get_request_code
return varchar2 AS
2
3 --函数的作用:自动生成订单号
4 v_mca_no mcode_apply_01.mca_no
%TYPE;
5
6 CURSOR get_max_mca_no
IS
7 SELECT max(substr(mca_no,
11,
1))
-- 查出的最大单号,截取出最后一位,如:1、2...n
8 FROM mcode_apply_01
9 WHERE substr(mca_no,
3,
8)
= to_char(sysdate,
‘YYYYMMDD‘);
-- 截取单号,如:20170422
10
11 v_requestcode
VARCHAR2(
3);
12
13 BEGIN
14 OPEN get_max_mca_no;
15 FETCH get_max_mca_no
INTO v_requestcode;
16 CLOSE get_max_mca_no;
17
18 IF v_requestcode
IS NULL THEN
19 v_requestcode :
= NVL(v_requestcode,
0);
-- NVL()函数:当v_requestcode为NULL时,取0作为值
20 END IF;
21
22 v_requestcode :
= lpad(v_requestcode
+ 1,
3,
‘0‘);
-- 将游标中截取到的值加1,然后向左填充0,生成 001...00n 序号; lpad()函数:向左填充
23
24 v_mca_no :
= ‘MA‘ || to_char(sysdate,
‘YYYYMMDD‘)
|| v_requestcode;
-- 最终生成的申请单号(如:MA20170422001;MA20170422002;...MA2017042200N )
25
26
27 RETURN ‘0~,‘|| v_mca_no;
28
29 END ;
函数 substr(),详解:http://www.cnblogs.com/dshore123/p/7805050.html
Oracle 函数“自动生成订单号”
标签:fun sda into etc sele www. int 游标 blank