感觉也是用来处理一个表中自增字段,因为至少现在别的用处还没怎么碰到过,呵,我学oracle还没多久

解决方案 »

  1.   

    Oracle 使用序列 来生成唯一编号,而不是使用 SQL Server 所用的数据类型 uniqueidentifier。无论是哪种情况,主要用途都是为主键列生成一系列唯一编号。与 uniqueidentifier 数据类型不同,序列是与将其用于主键值的一个或多个表无关的数据库对象。Oracle 序列是原子对象,并且是一致的。也就是说,一旦您访问一个序列号,Oracle 将在处理下一个请求之前自动递增下一个编号,从而确保不会出现重复值。可以使用 CREATE SEQUENCE 命令创建 Oracle 序列。该命令所带参数包括增量、起始值、最大值、循环和缓存。可使用 NEXTVAL 和 CURRVAL 关键字访问序列值。NEXTVAL 返回序列中的下一个编号,而 CURRVAL 提供对当前值的访问。HR 架构中的序列 LOCATIONS_SEQ 按如下方式定义:CREATE SEQUENCE LOCATIONS_SEQ
        INCREMENT BY 100
        START WITH 1
        MAXVALUE 9900
        MINVALUE 1
        NOCYCLE 
        NOCACHE
        NOORDER大多数序列代码是不言自明的。NOCYCLE 表示序列在达到最小值或最大值后将不再生成其他值。NOCACHE 表示序列值在被请求之前不会进行分配;可使用预分配机制来改善性能。NOORDER 表示在生成编号时,不能保证按照请求编号的顺序返回这些编号。
      

  2.   

    在sql server中我们可以在设计表时使用标识字段来给出一个表的主键, 并且是系统自动维护的.但是,在oracle中没有这么方便,我们必须建立Sequences, 来实现自增的标识字段.