EXT_LOG UDF함수는 SQL문장 로그를 남기는 함수입니다.
이 함수가 불린 로그를 남기려고 하는데요.
로그는 대충 테이블 이름, 불린 문장 종류, 변수값 이런거 말이죠.
INSERT INTO TEST VALUES (EXT_LOG(1));
이렇게 불리면 한건을 적는 것입니다.
INSERT INTO TEST VALUES(EXT_LOG(1));
INSERT INTO TEST VALUES(EXT_LOG(2));
이런 식으로 하면 로그는 두개가 적혀야 합니다.
하지만
BEGIN ATOMIC
DECLARE V_ID INTEGER;
SET V_ID = 0;
WHILE V_ID < 100 DO
INSERT INTO TEST VALUES(EXT_LOG(V_ID));
END WHILE;
END;
이런 식으로 불리면 100건 적는게 아니라 문장을 실행하는 단위는 한 문장이기 때문에
로그를 한개만 적어야 하는 것인데 이렇게 할려면 어떻게 해야 하나요.
문장 단위를 알아내는 방법을 알고 싶습니다.
함수가 불린 횟수가 아니라 문장단위로 적고 싶은 겁니다.
INSERT INTO TEST2(ID1,ID2) VALUES(EXT_LOG(1), EXT_LOG(2));
이렇게 함수가 두번 불렸다고 해서 두번 적는게 아니라 한번만 불려야 하는데
함수 안에서 어떻게 알수 있을까요?
|