select your_seq_name.currval from dual;
--这个语句就是得出当前值!

解决方案 »

  1.   

    第1次必须先执行.nexval,然后才能执行currval
    只要执行过.nextval,执行currval就是当前值。
      

  2.   

    楼主你莫非对序列值精准要求很高  seq有可能跳号的
      

  3.   

    你应该在查询的时候将你的序列存入一个变量里面同过变量来得到你想要的当前值
    序列在多用户操作的时候你使用seq.currval是可能出现跳号的
      

  4.   

    序列号设置了CACHE,会user_sequences的user_sequence 是根据CACHE大小跳跃的,要想查当前值只能从内存中读取:
    SELECT KGLOBTN0-KGLOBTN1 FROM  X$KGLOB WHERE KGLNAOBJ='SEQ_NAME';
    但普通用户没有权限,建议你还是调整需求。
      

  5.   

    你是不是写错了?你写的是:select last_number from user_sequence where sequence_name='SEQ_NAME';(是不对的,user_sequence应该写为user_sequences)
    这样写才能执行吧:select last_number from user_sequences where sequence_name='SEQ_NAME';