by LKJ [Oracle 기초] #FUNCTION #사용자함수 [2022.07.21 16:32:21]
하기 SELECT를 수행시 아래와 같이 결과가 나옵니다.
이때 C 컬럼은 사용자함수로 시간이 좀 걸리는 FUCTION 입니다.
SELECT A
, B
, SFFA_FUNCTION('202206', '5555') C -- USER DEFINCED FUCTION
FROM HIHIHI
<결과>
------------
A B C
------------
20 30 40
그리고 위 SELECT를 INSERT 하여 저장시 후 "HAHAHA" 테이블을 조회하면 C 필드에 0이 들어갑니다.
INSERT 처리하기 전에 C의 사용자 함수가 속도가 오래 걸리니 값을 반환하지 못해서 나오는 증상일까요?
물론 FUNCTION을 호출하지 않고 FUNCTION안의 쿼리를 가져와서 처리하면 정상적으로 40은 INSERT 됩니다.
이런경우 어떻게 조치하면 될까요?!
INSERT INTO HAHAHA
(
A
, B
, C
)
SELECT A
, B
, SFFA_FUNCTION('202206', '5555') C -- USER DEFINCED FUCTION
FROM HIHIHI
<결과>
------------
A B C
------------
20 30 0