`

存储过程生成系统中所有表的序列号

阅读更多

-- 序列号生成表
begin pr_droptable('best_tablesequence'); end;
/
create table best_tablesequence(
    name  varchar2(32) not null, --表名
    value number not null,       --序列取值
    constraint pk_best_tablesequence primary key (name)
);

-- 生成序列号
create or replace procedure pr_next_index
(   in_name  in varchar2,   --表名
    in_minvalue in number,  --生成序列时的最小值
    in_maxvalue in number,  --生成序列时的最大值
    out_value out number    --输出的序列号
)
is
    v_count number;
    v_value number;
begin
    select count(1) into v_count from best_tablesequence where name=in_name;
    if(v_count=0) then
        insert into best_tablesequence(name,value) values(in_name,1);
        commit;
        out_value:=1;
        return;
    else
        select value into v_value from best_tablesequence where name=in_name;
        if(v_value+1<=in_maxvalue)
        then
            update best_tablesequence set value=value+1 where name=in_name;
            commit;
            select value into out_value from best_tablesequence where name=in_name;
            return;
        else
            update best_tablesequence set value=in_minvalue where name=in_name;
            commit;
            select value into out_value from best_tablesequence where name=in_name;
            return;
        end if;
    end if;
end pr_next_index;
/
分享到:
评论

相关推荐

    数据库序列号生成器

    7. **扩展性**:对于大型系统,序列号生成器可能需要设计成可扩展的,以便在集群环境中支持多个节点同时生成序列号。 虽然具体的实现细节无法提供,但上述知识点提供了一个基本的框架,可以帮助理解数据库序列号...

    内存生成公用的订单编号序列号

    1. **序列号生成器类**:定义一个类,负责生成序列号。它可能包含一个原子变量来存储当前序列号,并提供一个`generate()`方法用于获取新的序列号。 2. **并发控制**:为了保证多线程环境下的安全性,可能使用`...

    获取CPU序列号和硬盘序列号加密生成机器码

    1. **CPU序列号**:每个中央处理器(CPU)都有一个唯一的序列号,类似于身份证,它由制造商在生产过程中烧录到CPU内部。获取CPU序列号可以使用C#中的WMI(Windows Management Instrumentation)框架。通过查询`Win32...

    软件序列号生成小算法

    4. **验证机制**:生成序列号的同时,应创建一个对应的验证算法,用于检查用户输入的序列号是否有效。这个验证过程通常会包含解密和校验两部分,确保序列号未被篡改。 5. **代码实现**:在VC++中,这些操作可以通过...

    Delphi随机生成程序序列号..rar

    10. **调试与测试**:在开发过程中,使用Delphi的调试器(如`Breakpoint`和`Watch`)进行调试,同时编写测试用例确保序列号生成和验证逻辑的正确性。 综上所述,"Delphi随机生成程序序列号"涉及到Delphi语言的...

    序列号生成器初级代码

    在这个初级代码项目中,开发者使用了Qt库,一个跨平台的应用程序开发框架,来实现硬件信息读取与MD5哈希算法,生成序列号。接下来,我们将深入探讨这两个核心知识点。 首先,让我们了解一下Qt。Qt是由Qt Company...

    Nero Burning Rom 序列号生成器

    Nero Burning ROM是一款知名的光盘刻录软件,由德国Nero AG公司开发,以其强大的功能和易用性在用户中享有很高的声誉。该软件主要用于创建、编辑和刻录数据光盘、音频CD、视频DVD以及蓝光光盘等。然而,"Nero ...

    批量生成25位数字与字母混合产品序列号(SN码).rar

    5. **加密与哈希算法**:虽然这里未明确提及,但生成序列号时,有时会结合简单的加密或哈希算法,以确保序列号的唯一性和不可预测性。Python的`hashlib`库提供了多种哈希函数,如MD5和SHA系列。 6. **批量处理**:...

    分布式架构系统生成全局唯一序列号的一些思路对比分析

    在分布式架构系统中,生成全局唯一序列号是至关重要的任务,它涉及到数据一致性、系统扩展性和性能优化等多个方面。本文将对比分析几种常见的生成全局唯一序列号的策略,以供IT从业者参考。 1. **雪花算法...

    中亿起航序列号查询系统

    在"中亿起航序列号查询系统"中,用户可以输入序列号进行查询,系统会对比数据库中的记录来验证该序列号的有效性。这一步骤对于防止非法复制和非法使用软件至关重要。如果序列号无法验证,系统可能会提示错误信息,...

    C#通过网卡序列号生成软件注册码的小程序

    C#通过网卡序列号生成软件注册码的小程序,将获取到的网卡信息存储到数组中,把网卡信息转换成字符串,根据随机数生成注册码,本源代码可供参考的地方有不少,虽然程序较小,但是对于学习此类程序的开发还是非常有...

    MySQL高并发下生成唯一订单号的存储过程

    这个是用mysql写的存储过程,搭配里面一张数据表使用,达到高并发情况下获得唯一订单号的目的;原理:按照一定规则生成订单号后,把订单号插入数据表后,再返回给用户,由于数据表设置了主键,也就是当数据表中存在...

    A750主板序列号及IMEI码生成工具

    在IT行业中,IMEI码(国际移动设备识别码)和主板序列号是手机硬件的重要标识,对于设备管理和故障排查起到至关重要的作用。本工具“A750主板序列号及IMEI码生成工具”主要针对联想A750手机,解决用户在刷机后可能...

    C# 读取机器码,CPU序列号,生成注册码类

    根据提供的文件信息,本文将详细解释如何在C#中实现机器码、CPU序列号的读取以及注册码的生成过程。 ### 一、引言 软件注册码是一种常见的软件授权方式,通过绑定特定硬件(如硬盘序列号或CPU序列号)来确保软件...

    SAP-序列号-配置管理-PP

    通常建议在物料入库时生成序列号,以减少因订单取消或变更带来的额外工作。 - **序列号的编码规则**:编码规则应根据业务需求定制,可能与生产日期、产品型号等信息相关联。灵活的编码规则可以提高追踪效率并增强...

    SQL 2000 的字母日期序列号自动递增方式

    然后,我们可以创建一个存储过程来生成序列号。该存储过程可以获取当前日期,并将其转换为 yyyymmdd 格式的年月日时间数字。然后,它可以从表中取出当前日期的已有的最大 ID,并将其加 1,生成新的序列号。如果没有...

    存储过程自动生成项目编号

    本文将深入探讨如何通过SQL Server中的存储过程实现自动项目编号的生成,特别是像“AHBC20131101001”这样的格式,这种格式包含了前缀、日期和序列号三个部分,适用于需要唯一编号标识的业务场景。 ### 一、理解...

    ecc的序列号生成代码

    在序列号生成的场景中,通常私钥由产品制造商持有,用于生成每个产品的唯一序列号,而公钥可以公开,供消费者验证序列号的真实性。 Crypto++是一个开源的C++类库,提供了丰富的密码学算法,包括ECC和ECDSA。在实现...

    C#仿MD5加密序列号生成原理

    在这个"**C#仿MD5加密序列号生成原理**"中,山西大学数学系教授对原始的MD5算法进行了某种形式的改写,可能是为了增强其安全性或者适应特定的应用场景。这种改写可能涉及到对MD5算法的内部步骤进行调整,比如改变...

Global site tag (gtag.js) - Google Analytics