关于Oracle 数据库中的sequence
2016-04-30 16:17
537 查看
dba_sequences.last_number:
无cache时,取一次nextval,last_number递增一次
有cache时, 若在cache之内的取一次nextval,last_number不变
若在cache之外的取一次nextval, last_number=last_number+cache值
dba_sequences.last_number未必是该sequence的下一个值,这其中一个原因是该sequence有cache
若是该sequence没有cache,那么dba_sequences.last_number是该sequence的下一个值
无cache时,取一次nextval,last_number递增一次
有cache时, 若在cache之内的取一次nextval,last_number不变
若在cache之外的取一次nextval, last_number=last_number+cache值
dba_sequences.last_number未必是该sequence的下一个值,这其中一个原因是该sequence有cache
若是该sequence没有cache,那么dba_sequences.last_number是该sequence的下一个值
F:\oracle\product\10.2.0\db_1\BIN>sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Sat Apr 30 16:01:14 2016 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 16:01:15 sys@FS> create sequence scott.seq_tmp_1 start with 1 increment by 1 max value 99999999 nocycle cache 10 order; Sequence created. Elapsed: 00:00:00.00 16:01:17 sys@FS> select SEQUENCE_NAME,LAST_NUMBER from dba_sequences where seque nce_name='SEQ_TMP_1'; SEQUENCE_NAME LAST_NUMBER ------------------------------ ----------- SEQ_TMP_1 1 Elapsed: 00:00:00.00 16:02:15 sys@FS> select scott.seq_tmp_1.currval from dual; select scott.seq_tmp_1.currval from dual * ERROR at line 1: ORA-08002: sequence SEQ_TMP_1.CURRVAL is not yet defined in this session Elapsed: 00:00:00.02 16:02:21 sys@FS> select scott.seq_tmp_1.nextval from dual; NEXTVAL ---------- 1 Elapsed: 00:00:00.00 16:02:52 sys@FS> select scott.seq_tmp_1.currval from dual; CURRVAL ---------- 1 Elapsed: 00:00:00.00 16:02:56 sys@FS> 16:02:57 sys@FS> 16:02:58 sys@FS> 16:02:58 sys@FS> 16:02:58 sys@FS> 16:02:58 sys@FS> select SEQUENCE_NAME,LAST_NUMBER from dba_sequences where seque nce_name='SEQ_TMP_1'; SEQUENCE_NAME LAST_NUMBER ------------------------------ ----------- SEQ_TMP_1 11 Elapsed: 00:00:00.01 16:03:00 sys@FS> select scott.seq_tmp_1.nextval from dual; NEXTVAL ---------- 2 Elapsed: 00:00:00.00 16:03:08 sys@FS> select scott.seq_tmp_1.currval from dual; CURRVAL ---------- 2 Elapsed: 00:00:00.00 16:03:11 sys@FS> select SEQUENCE_NAME,LAST_NUMBER from dba_sequences where seque nce_name='SEQ_TMP_1'; SEQUENCE_NAME LAST_NUMBER ------------------------------ ----------- SEQ_TMP_1 11 Elapsed: 00:00:00.00 16:03:26 sys@FS>
相关文章推荐
- Oracle-dos命令下的常用语句
- oracle学习笔记 Oracle数据库及相关软件的启动和关闭 第二部分
- oracle学习笔记 Oracle数据库及相关软件的启动和关闭 第一部分
- oracle用户创建及权限设置及表空间
- oracle导入和导出,以及报错的处理包括高版本的dmp导入到低版本
- JAVA解析DBF文件导入到Oracle数据库中
- C++使用oracle的occi库操作oracle数据库
- C++访问Oracle数据库
- C++操作oracle数据库
- C++通过OCCI操作Oracle数据库详解
- Oracle基础 -- SQL *Plus基本用法
- ORACLE之sql语句优化
- oracle 12 c Client for linux
- ORACLE手工删除数据库
- 删除ORacle 命名空间
- 15.oracle的dump理解十五 SQL命令DUMP
- 14.oracle的dump理解十四 窥视内存
- 13.oracle的dump理解十二 dump heap
- 12.oracle的dump理解十二 dump library_cache_object
- 11.oracle的dump理解十一 dump library_cache