orcale生成订单号---订单号的要求为:yyyyMMddHHmmss+000N

CREATE OR REPLACE
FUNCTION "GET_GUID" RETURN VARCHAR2
AS
CURSOR get_max_mca_no IS
SELECT "MAX"(substr(GUID, 9, 4))
FROM WC_GIFTEXCHANG
WHERE substr(GUID, 1, 8) = to_char(sysdate, 'YYYYMMDD');               --从WC_GIFTEXCHANG表中查询GUID最大的值,判断前8位值和当前日期值是否相同,获取其后四位的值;如果不同get_max_mca_no让其为空

v_requestcode VARCHAR2(4);
BEGIN
OPEN get_max_mca_no;
FETCH get_max_mca_no INTO v_requestcode;
CLOSE get_max_mca_no;                                                                       --将获取到的最大的后四位值赋给v_requestcode
IF(v_requestcode IS NULL) THEN
v_requestcode := NVL(v_requestcode, 0);                                                --判断v_requestcode如果为空给其值赋0
END IF;
v_requestcode := lpad(v_requestcode + 1, 4, '0');                                     --给v_requestcode的值+1,生成一个四位数,不够四位的话前面拼接0
RETURN to_char(sysdate, 'YYYYMMDD') || v_requestcode;                    --生成一个订单号,格式为 年月日+一个自增的四位数,四位数从0001开始
END;

原文地址:https://www.cnblogs.com/geng-geng1997/p/11660227.html