http://blog.naver.com/orapybubu/40048824725
* 내가 이해하고 있는 선에서 요약하자면...
1. 기본적으로 view는 update가 가능하다.
2. table을 join 해서 view를 만들어 update를 할 때, 오라클은 다음의 조건을 만족하는 것을 요구한다.
(1) view 내에서 한 번에 한 개의 테이블만 update 가능하다.
(2) update의 대상이 되는 테이블의 PK나 UK는 반드시 select 되어야 한다.
=> update 대상 테이블의 ROW는 유니크해야한다.(select된 PK, UK가 2개 이상의 ROW로 중복되면 안된다)
3. 2-(2) 에서 update 대상 테이블의 ROW가 유일하지 않으면 오라클이 오류를 내고 멈추게 되는데,
그 상황을 무마시키고 update를 강행하게 해 주는 것이 /*+ BYPASS_UJVC */ 힌트이다.
(/*+ BYPASS_UJVC */는 Undocumented Hint로서, 이로 인한 데이터 무결성의 문제는 오라클에서 책임지지 않음)