0

以下のストアド プロシージャが呼び出されるたびに、使用中のテーブルの例外が発生します。

以下はストアドプロシージャのコードです。

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 が使用されています。

ご意見をお聞かせください。

4

0 に答える 0