先 SeqName.nextval后,才可以SeqName.currval

解决方案 »

  1.   

    请问能查看SeqName值的变化历史记录么?
    我记得昨天新建SeqName,Create Sequence SeqName Start With 6,
    怎么今天突然变成26了?
      

  2.   

    你的increment by 是多少??是不是20
      

  3.   

    sorry!可能用了多次的seqname.nextval
      

  4.   

    默认值应该为1吧?
    好像没有多次调用seqname.nextval,刚建完调用seqname.nextval一次,然后增加一个用户完毕,seqname.nextval突然变为26
      

  5.   

    运行了alter system flush shared_pool;也会那样
      

  6.   

    我觉得挺奇怪,值变化的突然太大了。
    而且刚建完在pl/sql developer调用seqname.nextval一次,
    然后,程序在增加一个用户时调用了seqname.nextval一次,为什么现在调用
    Select SeqName.Currval From dual
    却出现下面这个提示,
    Sequence SeqName.currval is not yet defined in this session服务器一直开着,
    SeqName刚建完调用了一次,赋初值,
    为什么还需要调用seqname.nextval,才能成功执行
    Select SeqName.Currval From dual这个语句
      

  7.   

    运行了alter system flush shared_pool,
    会在原来的基础上加20
      

  8.   

    SeqName刚建完调用了一次,赋初值,
    为什么还需要调用seqname.nextval,才能成功执行

    这是语法问题。oracle规定的。我也说不清为什么
      

  9.   

    我没调用这个语句,至于是不是dba执行这个命令我还不太清楚。请问,[ 会在原来的基础上加20 ] ,其中的20是定死的么?为什么要加20? 加30或者别的值不行么?这条语句的作用是干什么?
      

  10.   

    Question:SeqName刚建完调用了一次,赋初值,
    为什么还需要调用seqname.nextval,才能成功执行

    这是语法问题。oracle规定的。我也说不清为什么Answer:对不起,写错了,是这样的。SeqName刚建完调用了seqname.nextval一次,赋初值,为什么还需要再调用seqname.nextval(因为已经调用了seqname.nextval一次),
    才能成功执行  Select SeqName.Currval From dual?
      

  11.   

    我看到seqname 的定义了
    create sequence seqname
    minvalue 1
    maxvalue 999999999999999999999999999
    start with 46
    increment by 1
    cache 20;请问cache的值如何设置?
      

  12.   

    cache书上建议设置为nocache.
    因为可能会出现跳号的现象。
      

  13.   

    我没调用这个语句,至于是不是dba执行这个命令我还不太清楚。请问,[ 会在原来的基础上加20 ] ,其中的20是定死的么?为什么要加20? 加30或者别的值不行么?
    --------------------------------
    加30,是定义sequence cache 30 才会那样的。
    如果清除了缓冲池,就会出现跳号的现象。