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。
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。
into 变量
from 表
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
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
不过c#调用存储过程我没用过,你google一下