2

次のエラーが発生するため、%notfound を使用できません。どうすればこれを乗り越えることができますか?? この方法以外にカーソルを使用する方法がわかりません。%notfound を使用せずにカーソル ループを使用する他の方法を教えてください。

"EXIT WHEN c_rqstid" に続く文字 "%" は無効です.. SQLCODE=-7、SQLSTATE=42601、DRIVER=3.63.123 SQL コード: -7、SQL 状態: 42601

@ を区切り記号として設定しました。コードは次のとおりです。

create PROCEDURE TEST111()
AS: 
begin 
DECLARE c_id integer; 
DECLARE c_isactive integer; 
DECLARE c_status integer; 
CURSOR c_rqstid is SELECT REQUESTID,REQUESTSTATUS,ISACTIVE FROM SAMPLE.REQUEST;
 OPEN c_rqstid;
  FOR LOOP FETCH c_rqstid into c_id,c_status,c_isactive ;
  ----will code this later
  EXIT WHEN c_rqstid%NOTFOUND;
  END LOOP;
 CLOSE c_rqstid;
end
@

事前に助けてくれてありがとう...

4

1 に答える 1

2

SQLCODE または SQLSTATE 変数を確認する必要があります。

http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.apdv.sqlpl.doc/doc/c0009028.html

 DECLARE SQLCODE INTEGER DEFAULT 0;
 DECLARE SQLSTATE CHAR(5) DEFAULT '00000';

 WHILE(SQLSTATE = '00000') DO
    SET p_sum = p_sum + p_sal;
    FETCH FROM c INTO p_sal; 
 END WHILE;
于 2014-02-09T03:38:29.940 に答える