DB2SQL错误:SQLCODE=-952,>;SQLSTATE=57014,来自Tibco BW

DB2SQL错误:SQLCODE=-952,>;SQLSTATE=57014,来自Tibco BW,sql,stored-procedures,db2,businessworks,Sql,Stored Procedures,Db2,Businessworks,我正在从BW调用过程调用DB2存储过程 当我在数据库中测试这个过程时,它得到了正确的执行。 但当我通过BW调用时,它抛出异常 报告的JDBC错误:(SQLState=57014)- com.ibm.db2.jcc.am.SqlException:db2sql错误:SQLCODE=-952, SQLSTATE=57014,SQLERRMC=null 我的存储过程代码如下所示 CREATE OR REPLACE PROCEDURE TABLE1_PURGE_PROC_V1 (IN v_REF_VER

我正在从BW调用过程调用DB2存储过程

当我在数据库中测试这个过程时,它得到了正确的执行。 但当我通过BW调用时,它抛出异常

报告的JDBC错误:(SQLState=57014)- com.ibm.db2.jcc.am.SqlException:db2sql错误:SQLCODE=-952, SQLSTATE=57014,SQLERRMC=null

我的存储过程代码如下所示

CREATE OR REPLACE PROCEDURE TABLE1_PURGE_PROC_V1 (IN v_REF_VERSION VARCHAR(3), OUT o_DELTETE_STATUS VARCHAR(7))
    P1: BEGIN

    --DECLARE v_TABLE_NAME VARCHAR(30);
    DECLARE v_WHERE_CONDITION VARCHAR(1024);
    DECLARE V_COUNT_QUERY VARCHAR(1024);
    DECLARE v_COMMIT_COUNT INTEGER;

    SET v_WHERE_CONDITION='REF_VERSION ='||v_REF_VERSION;
    SET v_COMMIT_COUNT=10000;


    CALL SCHEMA.DELETE_WITH_COMMIT_COUNT('SCHEMA.TABLE1',v_COMMIT_COUNT,v_WHERE_CONDITION);
    CALL SCHEMA.DELETE_WITH_COMMIT_COUNT('SCHEMA.TABLE2',v_COMMIT_COUNT,v_WHERE_CONDITION);
    CALL SCHEMA.DELETE_WITH_COMMIT_COUNT('SCHEMA.TABLE3',v_COMMIT_COUNT,v_WHERE_CONDITION);
    CALL SCHEMA.DELETE_WITH_COMMIT_COUNT('SCHEMA.TABLE4',v_COMMIT_COUNT,v_WHERE_CONDITION);


    INSERT INTO SCHEMA.DEBUG_LOG(PROC_NAME,LOG_TIME,MESSAGE) VALUES('TABLE1_PURGE_PROC_V1',CURRENT_TIMESTAMP,'ALL TABLE1 RELATED TABLES INVALID DATA DELETED FOR VERSION-'||v_REF_VERSION);

    SET o_DELTETE_STATUS ='SUCCESS';
    END P1 

    ####################################### PROC 2 ###########################################################
    CREATE OR REPLACE PROCEDURE DELETE_WITH_COMMIT_COUNT(IN v_TABLE_NAME VARCHAR(24), IN v_COMMIT_COUNT INTEGER, IN v_WHERE_CONDITION VARCHAR(1024))
        NOT DETERMINISTIC
        LANGUAGE SQL
    P1: BEGIN
     -- DECLARE Statements
        DECLARE SQLCODE INTEGER;
        DECLARE v_DELETE_QUERY VARCHAR(1024);
        DECLARE v_DELETE_STATEMENT STATEMENT;


        SET v_DELETE_QUERY = 'DELETE FROM (SELECT 1 FROM ' || v_TABLE_NAME || ' WHERE ' || v_WHERE_CONDITION
            || ' FETCH FIRST ' || RTRIM(CHAR(v_COMMIT_COUNT)) || ' ROWS ONLY) AS DELETE_TABLE';

        PREPARE v_DELETE_STATEMENT FROM v_DELETE_QUERY;


        DEL_LOOP:
            LOOP
                EXECUTE v_DELETE_STATEMENT;
                IF SQLCODE = 100 THEN
                    INSERT INTO TEP.DEBUG_LOG(PROC_NAME,LOG_TIME,MESSAGE) VALUES('DELETE_WITH_COMMIT_COUNT',CURRENT_TIMESTAMP,'ALL DATA DELETED FROM'||v_TABLE_NAME||'QUERY USED IS'||v_DELETE_QUERY);
                    LEAVE DEL_LOOP; 
                END IF;
                COMMIT;
            END LOOP;   
        COMMIT;
    END P1 
正如我所研究的,据说这是DB2中的中断代码。
如何在DB2中处理这个问题我将Tibco超时添加到6分钟,现在它可以工作了。
从12个表中删除200万数据

感谢大家的帮助

这可能是由于应用程序超时造成的。我将超时时间设置为100秒,存储过程一般不会占用那么多时间。max(40秒)什么DB2平台?什么版本?还有,您设置了什么
timeout
?DB2超时,还是Tibco超时?我将Tibco超时添加到了6分钟,现在它可以工作了。感谢大家的帮助