Operating System/ORACLE

[ORACLE] 뷰(View)를 통한 로우 데이터의 갱신과 추가

Growing DBA 2022. 2. 18. 14:33
728x90
반응형

* Simple 뷰를 사용하는 경우는 아무 문제없이 임의의 로우 데이터를 갱신할 수 있지만 Complex 뷰를 사용하는 경우는 다음의 조건 하에서는 로우 데이터의 갱신이 불가능하다.

-> 그룹 함수와 Group by 절을 사용하여 만든 Complex 뷰인 경우
-> Distinct 옵션을 사용하여 만든 Complex 뷰인 경우
-> Rownum 키워드를 사용하는 경우
-> 컬럼 설정시 표현(Expression)을 사용하는 경우

* 뷰를 사용하여 로우 데이터를 추가할 때 Simple 뷰를 사용하는 경우는 위의 경우와 마찬가지로 아무 문제없이 임의의 로우 데이터를 추가할 수 있지만 Complex 뷰를 사용하는 경우는 다음의 조건 하에서는 로우 데이터의 추가가 불가능하다.

-> 그룹 함수와 Group by 절을 사용하여 만든 Complex 뷰인 경우
-> Distinct 옵션을 사용하여 만든 Complex 뷰인 경우
-> 컬럼 설정시 표현을 사용하는 경우
-> Rownum 키워드를 사용하는 경우
-> 뷰에 의하여 선택된 컬럼들 가운데 Not null 컬럼이 없는 경우

* 뷰를 생성할 때 Not null로 설정된 컬럼을 포함하지 않았다면 뷰를 통해서 로우 데이터를 추가할 때도 마찬가지로 그 Not null로 설정된 컬럼에는 Null 값이 들어갈 수밖에 없다. 그러므로 Not null 제한 조건을 위반하게 되는 것이다.

728x90
반응형