Oracle中序列表sequence的使用.docx_第1页
Oracle中序列表sequence的使用.docx_第2页
Oracle中序列表sequence的使用.docx_第3页
Oracle中序列表sequence的使用.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle中序列表sequence的使用在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。1、 create sequence你首先要有create sequence或者create any sequence权限,create sequence emp_sequenceINCREMENT BY 1 - 每次加几个START WITH 1 - 从1开始计数NOMAXVALUE - 不设置最大值NOCYCLE - 一直累加,不循环CACHE 10;一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVALCURRVAL=返回sequence的当前值NEXTVAL=增加sequence的值,然后返回sequence值比如:emp_sequence.CURRVALemp_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;但是要注意的是:- 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前sequence的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次sequence的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。明白?- 如果指定CACHE值,oracle就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。2、 Alter sequence你或者是该sequence的owner,或者有ALTER ANY sequence权限才能改动sequence。 可以alter除start值之外的所有sequence参数。如果想要改变start值,必须drop sequence再re-create。例子:ALTER sequence emp_sequenceINCREMENT BY 10MAXVALUE 10000CYCLE - 到10000后从头开始NOCACHE;影响sequence的初始化参数:sequence_CACHE_ENTRIES =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论