执行存储过程时数据库表被锁定

时间:2013-03-21 19:54:16

标签: database db2 database-administration

当调用下面的存储过程时,我得到了表中的使用异常。

以下是存储过程的代码,

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中的行或对象CPS_FILE类型*正在使用的文件。

请建议。

0 个答案:

没有答案