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;
分享到:
相关推荐
TOAD for oracle 序列号产生器 测试过 10.x 版可用
Oracle查找空缺的序列号。很多时候需要在几百万,上千万数据中,找一段空序列号插入一些数据,找半天,眼都花了,还找不到。写个简单sql,解决这问题。
toad for oracle 11 的序列号
oracle数据库startwith用法
实际工作中,难免会遇到序列号生成问题,下面是一个简单的序列号生成函数 (1)创建自定义序列号配置表如下: –自定义序列 create table S_AUTOCODE ( pk1 VARCHAR2(32) primary key, atype VARCHAR2(20...
Oracle中EXECUTE IMMEDIATE用法
Toad for Oracle 9.7.2 Toad for Oracle 9.7.2 Toad for Oracle 9.7.2
配置Oracle监听器 配置Oracle监听器
oracle 企业管理器
ORACLE函数及其用法ORACLE函数及其用法ORACLE函数及其用法ORACLE函数及其用法ORACLE函数及其用法
ORACLE数组使用方法,文档,详细介绍Oracle中数组如何使用
oracle自定义监视器
Oracle事件探查器
Oracle 企业管理器(OEM 2.1)使用指南 内容
ORACLE数据库中PARTITION的用法[文].pdf
主要为大家详细介绍了ORACLE实现自定义序列号生成的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Oracle代码生成器V1.0.zip
Oracle_expdp_impdp用法详解
--建表 drop table TEST create table TEST ( NID varchar2(20) PRIMARY KEY, test1 varchar2(20) ) --序列drop sequence SEQ_TEST create sequence SEQ_TEST minvalue 1--最小值 nomaxvalue--不设置最大值 ...
关于oracle decode函数的用法