• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > Oracle生成单据编号存储过程的实例代码

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

作者:PariyPeng 字体:[增加 减小] 来源:互联网 时间:2017-05-11

PariyPeng通过本文主要向大家介绍了单据编号,管家婆单据编号设置,单据编号规则,基本信息 单据编号,自动生成单据编号等相关知识,希望本文的分享对您有所帮助

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;
</div>

以上所述是小编给大家介绍的Oracle生成单据编号存储过程的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-11Oracle 低权限数据库账户得到 OS 访问权限 提权利用
  • 2017-05-11Oracle中SQL语句连接字符串的符号使用介绍
  • 2017-05-11Oracle中scott表结构与简单查询实例分析
  • 2017-05-11oracle case when 语句的用法详解
  • 2017-05-11oracle数据库sql的优化总结
  • 2017-05-11Linux 7下脚本安装配置oracle 11g r2教程
  • 2017-05-11oracle查看字符集和修改字符集使用详解
  • 2017-05-11Oracle 启动例程 STARTUP参数说明
  • 2017-05-11Oracle数据库中SQL语句的优化技巧
  • 2017-05-11oracle更新xml节点问题的一些细节

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • DB2和 Oracle的并发控制(锁)的比较
    • oracle适配器连接不上的解决办法
    • 解析oracle对select加锁的方法以及锁的查询
    • 关于系统重装后Oracle数据库完全恢复的解决办法
    • Oracle数据库ORA 54013错误的解决办法
    • oracle comment命令用法示例分享
    • Oracle中在pl/sql developer修改表的2种方法
    • 关于oracle中clob字段查询慢的问题及解决方法
    • oracle使用order by排序null值如何处理
    • 深入剖析哪些服务是Oracle 11g必须开启的

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有