可以生成唯一值,如:
select seq_no.next_val from dual
其中seq_no是创建的一个序列对象

解决方案 »

  1.   

    dual 是什么表,做什么用啊,怎么创建序列啊
      

  2.   

    创建序列这样即可:
    create sequence ECS.AR_TAX_HEADERS_S
    minvalue 1
    maxvalue 2147483647
    start with 1
    increment by 1
    cache 20
    order;
    调用如下:
    SELECT ECS.AR_TAX_LINES_S.NEXTVAL INTO NO FROM DUAL;
      

  3.   

    drop sequence seq_name
    就可以删除名为seq_name的序列
    序列与表无关,可在多个表中使用,但每个表中的号则会不连续。因为每个seq_name.nextval都要消耗一个值。dual是oracle中的哑元表,因oracle的select要有from语句(sqlserver则不需要),所以不需要从表或视图中取值的select 语句,就跟from dual。
    例:
      select sysdate from dual
      

  4.   

    楼上的兄弟,谢谢你!可以查看DUAL这个表的结构吗?
      

  5.   

    该表就一个字段
    desc dual 就可以看到该表的表结构了
      

  6.   

    其实并不是一定要用dual表,可以是任何一个表都可以进行取得下一个值或最新值,如果你一次取的只有一个值则只要对于表检索的时候条件保证是只有一条记录就可以搞定。
    如:表a,字段:a1 ,存在值:1,2,3
    select seq_no.next_val from a where a1 = 1
      

  7.   

    tiro01() 兄弟,我算是对序列有点明白了,我再请教一个关于序列的问题,
    就是:我将序列所产生的值做为
    我一个表的主键值,但当我删除我表中的一条
    记录的时候,所消耗的序列也会自动减1吗?如果不是,那序列总有用完的一天啊
    ,特别是几个表使用同一个序列的时候,不知道实际情况是怎么样的啊,谢谢!!