update T_USR A
SET A.BEFORE_NM = (SELECT AFTER_NM FROM T_USR B WHERE B.T_NO=FN_GET_BF_NO(A.T_NO))
where USE_YN = 'Y'
이전 T_NO를 가져오는 FN_GET_BF_NO 함수 를 이용 해서
동일 테이블을 sub query 로 값을 가져오는 일을 하고 싶은데..
알수없는 오류들로 실행이 안됩니다 ㅜㅜ
검색으로 join 형태로 하면 된다기에 해봤지만 또 안되네요 ㅠㅠ
안의 select 문은 실행 되구요 ㅜㅜ
update (
select A.BEFORE_NM , B.AFTER_NM
FROM T_USR A left JOIN
T_USR B
on FN_GET_BF_NO (A.T_NO)= B.T_NO
where A.USE_YN = 'Y'
)
set A.BEFORE_NM = B.AFTER_NM
부탁드립니다 ㅜㅜ 쿼리로 못하면 수기로 해야되요 흑......
답변감사합니다 헌데 오류가 납니다 ㅜㅜ 제가 사용하는 함수에 문제가 있는건지 ㅜㅜ
SQL 오류: ORA-04091: table T_USR is mutating, trigger/function may not see it
ORA-06512: at ".FN_GET_BF_NO", line 14
04091. 00000 - "table %s.%s is mutating, trigger/function may not see it"
*Cause: A trigger (or a user defined plsql function that is referenced in
this statement) attempted to look at (or modify) a table that was
in the middle of being modified by the statement which fired it.
*Action: Rewrite the trigger (or function) so it does not read that table.