0
BW 호출 프로 시저 팔레트에서 DB2 저장 프로 시저를 호출합니다.DB2 SQL 오류 : SQLCODE = -952,> SQLSTATE = 57014, Tibco BW
데이터베이스에서이 proc을 테스트 할 때 제대로 실행되고 있습니다. 하지만 난이 BW를 통해 호출 할 때 예외
JDBC error reported: (SQLState = 57014) - com.ibm.db2.jcc.am.SqlException: DB2 SQL Error: 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에서 이것을 처리하는 방법
이것은 응용 프로그램의 시간 초과로 인한 것일 수 있습니다. – mustaccio
나는 100 초 동안 타임 아웃을하고 있었고, 스토어 proc은 많은 시간을 사용하지 않았다 ..max (40 초) – Fryder
어떤 DB2 플랫폼인가? 어떤 버전입니까? – user2338816