`

Oracle 根据序列已有最大值自动生成累加序列

阅读更多
CREATE OR REPLACE Procedure Test As
  v_Sn Integer;

Begin

  Select Max(Sn) Into v_Sn From Postcard_Print;
  For i In (Select Rowid Row_Id From Postcard_Print Where Sn Is Null) Loop
    v_Sn := v_Sn + 1;
    Update Postcard_Print Set Sn = v_Sn Where Rowid = i.Row_Id;
  Commit;
  End Loop;
  Commit;
End;

 说明:

       Postcard_Print为需要加入序列的表名;

       v_Sn为设置的累加变量;

       Sn为序列的字段;

分享到:
评论
1 楼 zhaobin87 2012-08-02  

相关推荐

    oracle 主键自增 sequence

    - **NOMAXVALUE**:表示 `Sequence` 可以生成的最大值是无穷大。 - **NOCYCLE**:表示 `Sequence` 的值达到最大或最小后不会循环。 - **NOCACHE**:表示不缓存 `Sequence` 的值,每次调用都会生成新的值。 #### 三...

    oracle 自增长主键.doc

    关于Oracle序列的更多特性,例如`CACHE`选项,可以设置一个缓存值来提高性能。例如,`CACHE 10`会预取10个序列值存储在内存中,这样在连续插入多条记录时可以提高效率。但需要注意,如果数据库意外关闭,未使用的...

    Oracle 使用触发器创建自动序列号

    nomaxvalue--不设置最大值 increment by 1--每次加1个 start with 1--从1开始计数,nocycle是一直累加,不循环 cache 20 order; --查序列,小心执行 select seq_customer_id.nextval from SEQ_TEST --插入数据 ...

    insert和select结合实现"插入某字段在数据库中的最大值+1"的方法

    在数据库操作中,有时我们需要在插入新记录时确保某个字段的值是当前数据库中该字段的最大值加上1,以此来实现自动序列化或保持唯一性。这种需求在诸如订单编号、ID序列等场景中十分常见。本文将详细介绍如何通过`...

    详解ORACLE SEQUENCE用法

    在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系。 1、Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。 创建语句如下: CREATE SEQUENCE seqTest INCREMENT...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    8.6.1 例子:使用First_value来计算最大值 206 8.6.2 例子:使用Last_value来计算最小值 207 8.7 其他分析函数 207 8.7.1 Nth_value(11gR2) 207 8.7.2 Rank 209 8.7.3 Dense_rank 210 8.7.4 Row_number 211 ...

    Oracle创建主键自增表(sql语句实现)及触发器应用

    序列允许我们生成有序的唯一数字,`INCREMENT BY`指定每次递增的数值,`START WITH`设定初始值,`NOMAXVALUE`表示没有预设的最大值,`NOCYCLE`确保当达到最大值时不会重置,`CACHE`则用于预先分配一部分序列号以减少...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     删除环境变量中的PATHT CLASSPATH中包含Oracle的值。  删除“开始”/“程序”中所有Oracle的组和图标。  删除所有与Oracle相关的目录,包括: C:\Program file\Oracle目录。 ORACLE_BASE目录。 C:\Documents ...

Global site tag (gtag.js) - Google Analytics