Oracle中提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方.下面就主要介绍一下关于sequence对象的生成,修改,删除等常用的操作:

1. 生成 Sequence
首先用户要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限.然后使用下面命令生成sequence对象:
CREATE   SEQUENCE emp_sequence
INCREMENT   BY    1     --   每次加几个  
START   WITH    1      --   从1开始计数  
NOMAXVALUE           --   不设置最大值  
NOCYCLE              --   一直累加,不循环  
CACHE   10 ;   [说明]
如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。

一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL 来使用 sequence:
sequence.CURRVAL     -- 返回 sequence的当前值
sequence.NEXTVAL     -- 增加sequence的值,然后返回 sequence 值 [说明]
第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次 SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。

2.修改 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 ;

3.   删除 Sequence
DROP   SEQUENCE order_seq;

CREATE SEQUENCE seq_alert
INCREMENT BY   1
START WITH   1
MAXVALUE   9999999999;

CREATE TRIGGER trg_alert
before insert on JIAXING.t_info_alert
for each row
begin
    select seq_alert.NEXTVAL into :NEW.P_ID from dual;
End trg_alert;

Oracle中的sequence对象相关推荐

  1. oracle中的数据对象

    oracle中的数据对象有表.视图.索引.序列等 表的相关操作 1.创建表 方式一: 方式二:create table person( create table person1 id number(1 ...

  2. php对象持久化,在 Oracle 中完成 PHP5 对象的持久

    在 Oracle 中完成 PHP5 对象的持久 作者:Barry McKay 在数据库驱动的 Web 应用程序中实现 PHP5 对象的持久,朝着完全面向对象的 Web 应用程序开发迈进重要的一步. 2 ...

  3. oracle失效对象是什么意思,Oracle中无效数据库对象的处理方法

    Oracle中无效数据库对象的处理方法 Oracle总是会尝试自动重编译无效的PL/SQL对象和视图,但是可能不会成功.虽然Oracle可能建议手动地进行编译,不过我们并非必须进行这个操作.通常无效对 ...

  4. Oracle中的数据库对象

    原文地址:https://www.cnblogs.com/linhuide/p/5804878.html 参考地址:http://www.cnblogs.com/lovemoon714/archive ...

  5. C#创建Oracle中的几何对象:点、线、面

    最初写这个程序是应老大的要求解决"更新Oracle中的空间数据时会因为wkt字符串太长而报错"这个问题,之前的更新都是在程序中插入一条SQL语句来进行更新,由于SQL语句本身的一些 ...

  6. Oracle中清理LOBSEGMENT对象

    文章目录 问题描述 解决步骤 相关知识 CLOB 数据类型 NCLOB 数据类型 BLOB 数据类型 BFILE 数据类型 问题描述 开发环境中做测试时,发现某个tablespace空间不足,再根据下 ...

  7. oracle中的几大对象,oracle 4个大对象(lobs)类型介绍

    oracle 4个大对象(lobs)类型介绍 在oracle中,有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob. 下面是对lob数据类型的简单介绍. blob:二进 ...

  8. Oracle中备份用户对象的两种方法

    方法1: 执行步骤: exp userid=用户名/密码@数据库名 file=c:\emp.dmp 使用当前用户导出 exp userid=sys/sys@数据库名 file=c:\emp.dmp o ...

  9. EF中创建、使用Oracle数据库的Sequence(序列)功能

    ** 背景 ** 项目中订单号原来的生成规则由日期加随机数组成,后期需求决定将订单号生成规则更改为生成日期加当天当前订单数. 每天的订单数都是从0开始的,每生成一个订单,订单数就应该加1.订单数应该是 ...

最新文章

  1. TCP/IP拥塞控制复习
  2. java中 构造器与void
  3. Python控制台英汉-汉英电子词典
  4. meta http-equiv=X-UA-Compatible content=IE=edge,chrome=1 /
  5. 百度SEO网站链接抓取器 v1.0
  6. java使用jeids实现redis2.6的HyperLogLog数据结构的操作
  7. 用C#编程合并多个WORD文档
  8. 40. 数组中只出现一次的数字(C++版本)
  9. 未来教育计算机二级2016版,20163未来教育计算机二级题库(操作题).docx
  10. 如何将计算机的硬盘分割,电脑硬盘如何快速分区
  11. 【windows】win10如何安装使用bitlocker
  12. 为什eclipse中调试的时候总是不弹出调试界面而是安装运行
  13. cmd循环调用native2ascii.exe
  14. 试验设计类毕业论文文献有哪些?
  15. 定时器中断实验和PWM输出实验(寄存器)
  16. IP周边创作交流#创作者的个人影响力
  17. 北京地铁规划图_测试博客撰写增加图片的办法
  18. PHPstorm必备插件推荐
  19. 华为2016校招 机试题
  20. 使用 JSONPath 解析 JSON内容 详细

热门文章

  1. weblogic部署步骤
  2. Android开发中使用startActivityForResult()方法从Activity A跳转Activity B出现B退出时A也同时退出的解决办法...
  3. 红皮书:变量、作用域和内存问题(四)
  4. 列表生成式的复习以及生成器的练习, 杨辉三角实例(非常巧妙)
  5. Document、HTMLDocument关系的探究
  6. DHTMLX 前端框架 建立你的一个应用程序 教程(八)-- 添加表单Form
  7. 图片或文字或box垂直居中
  8. (转贴)正则表达式学习心得体会(5)
  9. Eclipse自定义文档注释和方法注释
  10. Linux 文件与目录管理,玩转文件和目录管理的相关命令