CREATE OR REPLACE PROCEDURE usp_GenNewSeqVal2(v_SeqName NVARCHAR2,v_IDType NVARCHAR2,v_SeqID NVARCHAR2) IS
BEGIN  UPDATE ALL_SEQUENCES SET CURRVAL = CURRVAL + INCR
  WHERE SEQNAME = v_SeqName
  and IDTYPE = v_IDType
  and ID = v_SeqID;
  
  SELECT CURRVAL
  FROM ALL_SEQUENCES
  WHERE SEQNAME = v_SeqName
  and IDTYPE = v_IDType
  and ID = v_SeqID;
  
END usp_GenNewSeqVal2;以上CURRVAL想返回單值,但好似 "PLS-00428: 在此 SELECT 敘述句中預期會出現一個 INTO 子句" 出現了錯誤,我用的是TOAO。

解决方案 »

  1.   

    存储过程里所有select语句格式select 字段
          into 变量
        from 表
      

  2.   

    你这存储过程全是in 的变量,没有out变量,怎么返回值啊?
      

  3.   

    UPDATE ALL_SEQUENCES SET CURRVAL = CURRVAL + INCR 
      WHERE SEQNAME = v_SeqName 
      and IDTYPE = v_IDType 
      and ID = v_SeqID; 这个语句之后最好加个
    commit;语句,这样更新的东西才能生效想得到什么结果定义存储过程的时候在下面的()里加入out参数就可以返回了
    CREATE OR REPLACE PROCEDURE usp_GenNewSeqVal2(v_SeqName NVARCHAR2,v_IDType NVARCHAR2,v_SeqID NVARCHAR2) IS 
      

  4.   

    CREATE OR REPLACE PROCEDURE usp_GenNewSeqVal2(v_SeqName IN NVARCHAR2,v_IDType IN NVARCHAR2,v_SeqID IN NVARCHAR2, CurrentSeqValue OUT NVARCHAR2)
    IS
    BEGIN  UPDATE ALL_SEQUENCES SET CURRVAL = CURRVAL + INCR
      WHERE SEQNAME = v_SeqName
      and IDTYPE = v_IDType
      and ID = v_SeqID;
      
      SELECT CURRVAL
        INTO CurrentSeqValue
      FROM ALL_SEQUENCES
      WHERE SEQNAME = v_SeqName
      and IDTYPE = v_IDType
      and ID = v_SeqID;END usp_GenNewSeqVal2;
    /已改,但我可怎運行,因為客戶端是用C#寫的,目的是直接得到CURRVAL
      

  5.   

    你在外面定义一个CurrentSeqValue ,直接传参数过来到usp_GenNewSeqVal2 函数,就可以得到CURRVAL
      

  6.   

    先定义三个变量 分别是两个in的,一个out的,然后调用存储过程,然后看out的变量的值
    不过c#调用存储过程我没用过,你google一下
      

  7.   

    select into variant from ===== where======