Oracle 中生成流水号的方法

思路:

通过一个流水号表,记录当前最大的流水号,以便下次取用。每次取号时,将流水号表更新成大的。

涉及的表:

  流水号表hp_no:  

代码:

1)通过函数得到最大值。 有三个参数,

  第一个参数是类型,便于得到不同的流水号。

  第二个参数是前缀,用于在流水号前边放置特别的字符。

  第三个参数是生成的流水号长度。

代码

使用存储过程调用函数的方法:

代码

结果:

  调用存储过程Hp_Pro_GetTestNo(‘hp’,4);

  结果为:hp2016060001

其它思考:

一、新增时无须显示流水号,如得到得到连续流水号

方法:

  采用流水号子表,此表用于保存没有用过的流水号。当用户取号时,首选判断子表是否含有流水号,当有时,取出一个,并删除此个(防止别另外用户取用);否则调用主表得到新流水号。

当插入失败则将当前流水号保存到流水号子表中,供下次取用。

当删除时,将当前流水号保存到流水号子表中,供下次取用。

二、新增时须显示流水号,如得到得到连续流水号

方法:

  采用流水号子表,此表用于保存没有用过的流水号。当用户取号时,首选判断子表是否含有流水号,当有时,取出一个,并删除此个(防止别另外用户取用);否则调用 主表得到新流水号。

当用户不保存或插入失败则将当前流水号保存到流水号子表中,供下次取用。

当删除时,将当前流水号保存到流水号子表中,供 下次取用。

dawei

【声明】:丽水站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章

【免责声明】本站内容转载自互联网,其发布内容言论不代表本站观点,如果其链接、内容的侵犯您的权益,烦请提交相关链接至邮箱pniu8212@foxmail.com我们将及时予以处理。

Copygight © 2016-2023 https://www.0578zz.cn All Rights Reserved.丽水站长网

站长:pniu8212#foxmail.com(请把#换成@)