Oracle中序列表sequence的使用

在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按

序列号排序的地方。

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;

但是要注意的是:

- 第一次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_sequence

INCREMENT BY 10

MAXVALUE 10000

CYCLE -- 到10000后从头开始

NOCACHE;

影响sequence的初始化参数:

sequence_CACHE_ENTRIES =

设置能同时被cache的sequence数目。

可以很简单的Drop sequence

DROP sequence order_seq;

展开阅读全文

oracle函数胡书写,Oracle中序列表sequence的使用.docx相关推荐

  1. oracle函数删除语法,Oracle Delete

    oracle函数 的 Oracle Delete 在本教程中,您将学习如何使用Oracle DELETE语句从表中删除一行或多行. 要从表中删除一行或多行,请按如下所示使用Oracle DELETE语 ...

  2. oracle 函数插入操作,Oracle函数内部运用insert插入

    Oracle函数内部使用insert插入 create or replace function GET_PRODUCT_ID_BY_NAME(productName varchar2) return ...

  3. oracle 函数 结果集,Oracle 中函数如何返回结果集

    在Oracle中,用函数返回结果集有时候要用到,下面是demo: 在Oracle中,用函数返回结果集有时候要用到,,下面是demo: create or replace type t_test as ...

  4. oracle 函数参数类型,ORACLE 11g中的表值函数? (参数化视图)

    搜索热词 过去我已经看过关于这个问题的讨论,比如 here.但是我想知道如果某个地方沿线,或许10g或11g(我们正在使用11g),ORACLE已经对"参数化视图"提供了更好的支持 ...

  5. Oracle函数的信息,Oracle中获取会话信息的两个函数分享

    1. USERENV(OPTION) 返回当前的会话信息. OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE. OPTION='LANGUAGE'返回数据库的字符集. OP ...

  6. oracle 存储过程 胡勇,Oracle SQL:经典查询练手第二篇

    本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来.在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出.交流与分享才能 ...

  7. 简述oracle函数的功能,Oracle 最常用功能函数经典汇总 (zz)

    来源:ChinaITLab 收集整理 2004-6-14 10:58:00 * SQL Group Function * s (num can be a column or ex pression) ...

  8. oracle函数lad,Support | Oracle and MICROS Systems | Oracle 中国

    Welcome to Oracle Support. We are pleased to announce the transition of support for Oracle's MICROS ...

  9. 三、Oracle 函数

    一.Oracle 操作集 二.Oracle 数据类型 三.Oracle 函数 四.Oracle 视图 五.Oracle 序列 六.Oracle 同义词 七.Oracle 索引 八.Oracle PL/ ...

最新文章

  1. Using Regular Expression to validate a Guid
  2. 录音文件下载_音频转文字怎么转?大家都说好用的手机APP:录音转文字助手
  3. FESCAR:阿里重磅开源分布式事务解决方案
  4. Ie6下asp.net 中treeview自动随鼠标变小的修复
  5. 正则表达式(Java版整理)
  6. Spring源代码学习之How is Beans.xml loaded and parsed
  7. asp.mvc 4项目发布文件目录结构_Spring Boot项目搭建与启动
  8. 高级软件工程第六次作业:东理三剑客团队作业-3
  9. mplayer-ww-37356 compile with mingw gcc 4.5.1 修复无法播放wmv
  10. 算法 后减前最大值,zt
  11. 省A类竞赛二等奖--村先游项目VUE前端重构
  12. modbus 调试工具之modbus slave与modbus poll
  13. 防治计算机病毒微格教案反思,数字化微格教学实验室设备常见故障及处理方法...
  14. 斯坦福句法分析 java_使用Stanford Parser进行句法分析
  15. Namesilo域名注册流程
  16. 谁来拯救中国的语言文学
  17. Linux学习:文件、用户、磁盘管理总结
  18. Unity:碰撞检测方法
  19. GoogleHacking 语法篇
  20. HGOI 20190711 题解

热门文章

  1. JSP学习——语法(二)
  2. C#调用C++写的Dll时的运行时错误解决
  3. a,b为2个整型变量,在不引入第三个变量的前提下写一个算法实现 a与b的值互换...
  4. WEB前端性能优化小结
  5. 实战2--应用EL表达式显示投票结果
  6. [非技术参考]C#基础:使用Thread创建线程(1)
  7. [30期] 第一个项目
  8. 欢迎大家加入我的圈子
  9. linux内核seq_file接口
  10. 零基础学python-3.2 变量赋值