以下のストアド プロシージャが呼び出されるたびに、使用中のテーブルの例外が発生します。
以下はストアドプロシージャのコードです。
CREATE PROCEDURE SP_BATCHFILE_REPORT_GET001 (
IN countryCode CHAR(2),
IN reportFileID BIGINT
)
RESULT SETS 1
LANGUAGE SQL
SET OPTION COMMIT=*CS
P1: BEGIN
DECLARE cc CHAR(2);
DECLARE fid BIGINT;
-- Declare cursor
DECLARE cursor1 CURSOR FOR
SELECT * FROM CPS_FILE
WHERE COUNTRYCODE = cc
AND ReportFileID = fid
AND ReportGenerated = 'P'
AND Accepted <> '';
SET cc = countryCode;
SET fid = reportFileID;
UPDATE cps_file SET ReportGenerated = 'P'
WHERE COUNTRYCODE = cc
AND ReportFileID = fid
AND ReportGenerated <> 'Y'
AND Accepted <> '';
-- Cursor left open for client application
OPEN cursor1;
END P1 @
DB2 をデータベースとして使用していますが、ストアド プロシージャで使用されるテーブルにアクセスできる他のプロセスが同時に実行されていません。
次のエラーが表示されます。 CPSDATA タイプ *FILE の行またはオブジェクト CPS_FILE が使用されています。
ご意見をお聞かせください。