oracle开发中序列的使用

oracle开发中序列的使用

ID:47105589

大小:36.50 KB

页数:3页

时间:2019-08-04

oracle开发中序列的使用_第1页
oracle开发中序列的使用_第2页
oracle开发中序列的使用_第3页
资源描述:

《oracle开发中序列的使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主码值。一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而引起的性能瓶颈。Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。当一个序列号生成时,序列是递增,独立于事务的提交或回滚。允许设计缺省序列,不需指定任何子句。该序列为上升序列,由1开始,增量为1,没有上限。   1)建立序列命令   CREATESEQUENCE[user.]sequence_name   [incrementbyn]   [startwithn]   

2、[maxvaluen

3、nomaxvalue]   [minvaluen

4、nominvalue];   INCREMENTBY:指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为1。   STARTWITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。   MAXVALUE:指定序列可生成的最大值。   NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。   MINVALU

5、E:指定序列的最小值。   NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。   2)更改序列命令   ALTERSEQUENCE[user.]sequence_name   [INCREMENTBYn]   [MAXVALUEn

6、NOMAXVALUE]   [MINVALUEn

7、NOMINVALUE];   修改序列可以:   ?修改未来序列值的增量。   ?设置或撤消最小值或最大值。   ?改变缓冲序列的数目。   ?指定序列号是否是有序。   3)删除序列命令   DROPSEQUENCE[user.]

8、sequence_name;   从数据库中删除一序列。   创建一个序列号的语句:CREATESEQUENCEEXAM_NO_SEQSTARTWITH1484MAXVALUE9999999999MINVALUE1CYCLECACHE20NOORDER;   PB中取序列号的用法:stringv_exam_no//获取申请序号SELECTexam_no_seq.nextvalINTO:v_exam_noFROMdualusingghis_database;ifghis_database.SQLCODE<>0thenmessagebox

9、("","取检查序号出错")returnendif在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。1、CreateSequence你首先要有CREATESEQUENCE或者CREATEANYSEQUENCE权限,CREATESEQUENCEemp_sequenceINCREMENTBY1--每次加几个STARTWITH1--从1开始计数NOMAXVALUE--不设置最大值NOCYCLE--一直累加,不循环CACHE10;一旦定义了emp_sequence,你就可以用CURRV

10、AL,NEXTVALCURRVAL=返回sequence的当前值NEXTVAL=增加sequence的值,然后返回sequence值比如:emp_sequence.CURRVALemp_sequence.NEXTVAL可以使用sequence的地方:-不包含子查询、snapshot、VIEW的SELECT语句-INSERT语句的子查询中-NSERT语句的VALUES中-UPDATE的SET中可以看如下例子:INSERTINTOempVALUES(empseq.nextval,'LEWIS','CLERK',7902,SYSDATE,1

11、200,NULL,20);SELECTempseq.currvalFROMDUAL;但是要注意的是:-第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENTBY值,然后返回增加后的值。CURRVAL总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。明白?-如果指定CACHE值,ORACLE就可以预先在内存里面放置一些seque

12、nce,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。使用cache或许会跳号,比如数据库突然不正常down掉(shutdownabort),cache中的sequence就会丢失.所以可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。