我现在需要的插入一条记录 并且获得这个记录ID.
记录插入成功后,准备 newid:=seq.currval来得到值,发觉seq不能在不再插入语句外面使用,有什么办法能解决不.

解决方案 »

  1.   

    可以使用sequence的地方:  
    - 不包含子查询、snapshot、VIEW的 SELECT 语句  
    - INSERT语句的子查询中  
    - ISERT语句的VALUES中  
    - UPDATE 的 SET中   
    SELECT seq.currval INTO newid  FROM DUAL;
     看看
      

  2.   

    你定义一个列,列用sequence类型,每次插入之后,这个值就会是next value,每次你插入之后,自动就得到了列ID。
      

  3.   

    1、读currval序列值
    2、insert into ....return column into 变量。
      

  4.   

    SELECT seq.currval INTO newid  FROM DUAL; 
    这样在存储过程中 newid的值始终为空.
    不知道为什么
    select seq_tgen_webpage.nextval from dual;
    这样放SQL分析器里面能够执行,得到正确结果下面这句放到存储过程中 newid始终未空值.
    select seq_tgen_webpage.nextval into newid from dual;
      

  5.   

    NEXTVAL 返回下一个可用的值
    CURRVAL 返回当前的序列中值
      

  6.   

    NEXTVAL 返回下一个可用的值 
    CURRVAL 返回当前的序列中值 有个问题  CURRVAL使用之前必须先用NEXTVAL 
      

  7.   

    楼主说的对
    对于新定义的序列必须先用NEXTVAL产生值,才可以用CURRVAL返回当前值。
      

  8.   

    没有答案  我自己回答了。
    seq number(10);
    select seq.currval into seq from daul;