----예문------------------------------------------------------
CREATE FUNCTION PG_FT_M_PSYCHO_EXE (P_CHA_ID VARCHAR(2))
RETURNS VARCHAR(1)
LANGUAGE SQL
MODIFIES SQL DATA
BEGIN ATOMIC
UPDATE FT_MEMBER_PSYCHO_LIVNG_TIMEZON U
SET (WEIGHT_H,WEIGHT_E)
= (SELECT WEIGHT_H,
WEIGHT_E
FROM FT_MEMBER_PSYCHO M
WHERE M.CHA_ID = U.CHA_ID
AND M.MEMBER_ID = U.MEMBER_ID
AND M.HOUSEHOLD_ID = U.HOUSEHOLD_ID);
RETURN 'Y';
END;
-----------------------------------------------------------------------------
위에 명령어 실행하면 에러나요
"MODIFIES SQL DATA "절과 관련된 키워드가 여러개 있거나
충돌합니다하고요.(SQL0628N)
혹시나 해서 "MODIFIES SQL DATA "절 삭제하고 실행하면
MODIFIES SQL DATA "절이 지정되지 않았지만, 함수 내용을 조사해
보면 지정해야 함을 알 수 있습니다.라고 에러메시지
나오더라구요(SQL0374N)
어떻게 해야 해결될지..
그리고 또한
제가 위의 CREATE FUNCTION문에
CALL문을 사용하여 PROCEDURE을 호출해야 하기도 하거든요
아래와 같은 예문 실행하면 위와 같은 에러가 발생합니다.
-----예문-------------------------------------------------------------
CREATE FUNCTION PG_FT_M_PSYCHO_EXE (P_CHA_ID VARCHAR(2))
RETURNS VARCHAR(1)
LANGUAGE SQL
MODIFIES SQL DATA
BEGIN ATOMIC
DECLARE G_JOB_STATUS VARCHAR(1);
CALL PG_FT_M_PSYCHO(P_CHA_ID, G_JOB_STATUS);
RETURN G_JOB_STATUS;
END;
------------------------------------------------------------------------
DB2 도움말 봐도 모르겠네요..도와 주세요 ㅠ.ㅠ
|