`
pavel
  • 浏览: 928333 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE序列号发生器用法

阅读更多

create    sequence    name     
increment    by    x    //x为增长间隔     
start    with      x    //x为初始值     
maxvalue          x    //x为最大值       
minvalue          x    //x为最小值     
cycle                 //循环使用,到达最大值或者最小值时,从新建立对象     
cache             x    //制定缓存序列值的个数     
                      

1、Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;

一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
比如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL

可以使用sequence的地方:
- 不包含子查询、snapshot、VIEW的 SELECT 语句
- INSERT语句的子查询中
- NSERT语句的VALUES中
- UPDATE 的 SET中

可以看如下例子:
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);

SELECT empseq.currval FROM DUAL;
其实序列号发生器是和表没有任何关系的独立对象,他的每一次访问都会发生变化,这样就可以保证它能满足多用户的需求,我们也可以根据这个序列号发生器自己定义有特点的序列号。但是我们要保证每一次插入的记录都有序列号,要做一些容错方面的处理。

固定长度序列号可以用下面的语句:

SELECT TO_CHAR(EMP_SEQUENCE.NEXTVAL,'099999999999') FROM DUAL;

 

分享到:
评论

相关推荐

    Oracle 9i中文版基础培训教程07

    在实际操作中,用户可以使用Oracle的工具,如SQL*Plus或企业管理器,来查看和管理这些方案对象,以实现对数据库的有效控制和优化。了解和熟练掌握这些对象及其管理方法,对于Oracle数据库管理员和开发人员来说至关...

    群集中的CDP保护

    这种部署方法适用于那些需要高可用性和数据完整性的应用场景,尤其是涉及Oracle数据库等关键业务系统的情况。此外,通过对每个步骤的细致操作,还可以提高整个系统的稳定性和可靠性,为企业级用户提供更加安全可靠的...

    jjbuilder9 注

    JBuilder是Sun Microsystems公司(后被Oracle收购)推出的一款专为Java开发者设计的强大集成开发环境(IDE),它提供了丰富的功能来帮助开发者更高效地编写、调试和部署Java应用程序。下面将对JBuilder9的注册过程...

    plsqldev13注册码.txt

    #### 一、软件介绍 PL/SQL Developer 是一款专...总之,PL/SQL Developer 13 是一款功能强大且易用的 Oracle 开发工具,掌握其使用方法对于提高数据库开发效率至关重要。希望以上内容能帮助您更好地理解和使用该软件。

    解决sql死锁问题

    - **Oracle提供的死锁检测器**:定期检查数据库状态,一旦发现死锁立即采取措施解决。 #### 五、预防SQL死锁的最佳实践 1. **事务设计**: - **最小化事务持续时间**:尽快提交或回滚事务,减少持有锁的时间。 ...

    数据库文件误删

    1. 使用RMAN(恢复管理器)或SQL*Plus连接到数据库实例。 2. 如果有备份,恢复数据文件到最新状态:`RESTORE DATABASE;` 3. 使用`RECOVER DATABASE UNTIL TIME 'yyyy-mm-ddThh24:mi:ss'`指定时间点,确保在日志被...

    Data Integration Kettle 插件 增量数据抽取

    Kettle支持多种数据库,如MySQL、Oracle、SQL Server等,可以通过插件库中的连接器配置。 2. **识别变化**:使用特殊的插件或技术来确定哪些记录自上次抽取后发生了变化。这可以通过时间戳字段、序列号或其他数据库...

    J2EE软件工程师全部培训课程总结

    - **监听器**:监听特定事件的发生。 #### JSP (JavaServer Pages) - **JSP的工作原理**:将HTML、Java代码和JSP指令结合在一起。 - **JSP中的元素**:包括脚本、声明、表达式等。 - **JSP注释**:在JSP页面中添加...

    双机热备磁盘阵列服务器安装与配置教程

    - 在某些情况下,操作系统识别的共享磁盘的磁盘号可能会发生变化,此时可以勾选“自适应磁盘号变化”以避免问题发生。 - 在资源区域,指定共享磁盘分区的驱动器号(分区盘符)。 - 点击“确认”,完成卷资源配置...

    今日头条校园招聘历年经典面试题汇总:C++研发1

    30. **STL内存分配**:STL(Standard Template Library)中的容器如vector、list等,使用内存分配器(allocator)来管理内存,用户可以选择默认分配器或自定义分配器。 以上是针对今日头条校园招聘C++研发岗位的...

Global site tag (gtag.js) - Google Analytics