• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle生成单据编号存储过程的实例代码

    Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号。

    可以参考以下存储过程

    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 存储过程、函数和触发器用法实例详解
    • windows中oracle存储过程加密的实例代码
    • Oracle带输入输出参数存储过程(包括sql分页功能)
    • oracle中print_table存储过程实例介绍
    • Mybatis调用Oracle存储过程的方法图文详解
    • 详解Oracle调试存储过程
    • Oracle存储过程和存储函数创建方法(详解)
    • Oracle存储过程及调用
    • Oracle存储过程、包、方法使用总结(推荐)
    • Oracle数据库创建存储过程的示例详解
    上一篇:Windows Sever 2012下Oracle 12c安装配置方法图文教程
    下一篇:Oracle触发器实例代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle生成单据编号存储过程的实例代码 Oracle,生成,单据,编号,存储,