Oracle 生成单据编号存储过程
来源:互联网 发布:vpn 绕过公司网络监控 编辑:程序博客网 时间:2024/04/30 05:21
在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号
可以参考以下存储过程
CREATE OR REPLACE
procedure Pro_GetBillNO(TypeTable in varchar2,cur_mycursor out sys_refcursor)
as
DReceiptCode varchar2(40);
DReceiptName varchar2(50);
DPrefix1 varchar2(50);
DISO varchar2(50);
DIsAutoCreate varchar2(20);
DPrefix2 varchar2(20);
DPrefix3 varchar2(20);
DDateValue date;
DNO number;
DLength number;
DResetType number;
DSeparator varchar2(20);
DReturnValue varchar2(50);
strSql varchar2(1000);
begin
DReturnValue:='';
select "ReceiptCode","ReceiptName","Prefix1","ISO","IsAutoCreate","Prefix2","Prefix3","DateValue","NO","Length","ResetType","Separator" into
DReceiptCode,DReceiptName,DPrefix1,DISO,DIsAutoCreate,DPrefix2,DPrefix3,DDateValue,DNO,DLength,DResetType,DSeparator from
"SysReceiptConfig" where "ReceiptCode"=TypeTable;
if to_number(DResetType)>0
then
if DIsAutoCreate=1 THEN
if DResetType=1 then --按年份
if to_number(to_char(sysdate,'yyyy')) <>to_number(to_char(DDateValue,'yyyy')) then
update "SysReceiptConfig" set "NO"=1,"DateValue"=to_date(sysdate) where "ReceiptCode"=TypeTable;
else
update "SysReceiptConfig" set "NO"="NO"+1 where "ReceiptCode"=TypeTable;
end if; --年份
end if;--DResetType=1
if DResetType=2 then --按月份
if to_number(to_char(sysdate,'MM')) <>to_number(to_char(DDateValue,'MM')) then
update "SysReceiptConfig" set "NO"=1,"DateValue"=to_date(sysdate) where "ReceiptCode"=TypeTable;
else
update "SysReceiptConfig" set "NO"="NO"+1 where "ReceiptCode"=TypeTable;
end if; --月份
end if;--DResetType=2
if DResetType=3 then --按日
if to_number(to_char(sysdate,'dd')) <>to_number(to_char(DDateValue,'dd')) then
update "SysReceiptConfig" set "NO"=1,"DateValue"=to_date(sysdate) where "ReceiptCode"=TypeTable;
else
update "SysReceiptConfig" set "NO"="NO"+1 where "ReceiptCode"=TypeTable;
end if; --月份
end if;--DResetType=3
else
update "SysReceiptConfig" set "NO"="NO"+1 where "ReceiptCode"=TypeTable;
end if;--DResetType
end if;
strSql:=' select * from "SysReceiptConfig" where 1=1 ';
strSql:=strSql ||' and "ReceiptCode"='''||TypeTable||'''';
open cur_mycursor for strSql;
end;
- Oracle 生成单据编号存储过程
- 获取单据编号的存储过程
- ORACLE存储过程自动生成编号
- C#生成单据编号
- Oracle 生成流水号 存储过程 订单编号
- 用存储过程生成单据号
- 用存储过程生成单据号
- 用存储过程生成单据号
- 用存储过程生成单据号
- 用存储过程生成单据号
- 生成不重复单据编号
- 自动生成人才编号的存储过程
- 自动生成订单编号存储过程
- 分享一个自动生成单据的存储过程
- nc 调用后台接口 生成单据编码单据编号
- 自动生成16位的单据编号
- 利用触发器自动生成单据编号
- mysql 生成流水号 存储过程 订单编号
- springmvc注解
- 关于SQL完全卸载
- 二叉树知识总结
- Android 红外感应设备的那点累积,感应设备相关知识存储
- axure实现搜索条件的收起/展开
- Oracle 生成单据编号存储过程
- swift中类似PCH文件的东西
- Java学习之Object类
- VR中的9轴传感器(重力加速度/陀螺仪/磁力计)
- MAC常用功能tip
- oracle还原
- 【BZOJ 3527】 [Zjoi2014]力
- STL list的简单实现及list迭代器失效问题
- 一个拟合曲线趋势的算法