我创建另一个名为ABCD的序列,想用下面的SQL语句取系列的下一个值:
SELECT ABCD.NEXTVAl FROM DUAL结果每次得到的却是-1这是怎么回事?

解决方案 »

  1.   

    这是创建的:CREATE SEQUENCE "FOXTABLE"."ABCD" INCREMENT BY 1 START WITH 1 
        MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE 
        CACHE 20 NOORDER这是取值的:
    SELECT ABCD.NEXTVAl FROM DUAL提示错误:ORA-02289: 序列(号)不存在
      

  2.   

    CREATE SEQUENCE ABCD INCREMENT BY 1 START WITH 1 
        MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE 
        CACHE 20 NOORDER 
    这样试试
      

  3.   

    你的序列引用错了啊,下面的提示错误已经说明了呀CREATE SEQUENCE FOXTABLE.ABCD 
    INCREMENT BY 1  -- 每次加几个  
    START WITH 1    -- 从1开始计数  
    MAXVALUE 100000 
    NOCYCLE         -- 一直累加,不循环  
    CACHE 20; 不要加双引号,重新建个正常的或者你可以试试
    SELECT "ABCD".NEXTVAl FROM DUAL
    看看有没有结果。
      

  4.   

    SQL> create sequence abcd_seq increment by 1
      2  start with 1
      3  maxvalue 1.0E28 minvalue 1 nocycle
      4  cache 20 noorder;序列已创建。SQL> select abcd_seq.nextval from dual;
             1SQL>
      

  5.   

    SQL> CREATE SEQUENCE "SCOTT"."ABCD" INCREMENT BY 1 START WITH 1
      2  MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE
      3  CACHE 20 NOORDER;Sequence created.SQL> select ABCD.NEXTVAL from dual;   NEXTVAL
    ----------
             1SQL> select ABCD.NEXTVAL from dual;   NEXTVAL
    ----------
             2
      

  6.   

    SQL> select sequence_owner,sequence_name from dba_sequences
      2  where sequence_name='ABCD';SEQUENCE_OWNER                 SEQUENCE_NAME
    ------------------------------ ------------------------------
    SCOTT                          ABCD
      

  7.   

    我重新做过后,我发现在Oracle是可以取得序列的值。但是在vb.net中是不行的,得到得值始终是-1Dim conn As New Data.Oledb.OledbConnection("Provider=MSDAORA.1;Password=he710049;User ID=foxtable;Data Source=fox3;Persist Security Info=True")
    Dim cmd As New Data.Oledb.OledbCommand("SELECT ABCD.NEXTVAl FROM DUAL",conn)
    conn.Open
    Messagebox.show(cmd.ExecuteNonQuery() )
    conn.Close
      

  8.   

    不是这样取值的吧,cmd.ExecuteNonQuery()应该只能返回执行状态。
      

  9.   

    另,VB.NET我不懂,但是我猜取值不会是这样的。
      

  10.   


    哈哈,一言惊醒梦中人,是我搞错了,应该是ExecuteScalar