오라클에서 뷰(VIEW)를 생성할 때 FORCE, NOFORCE 옵션을 부여할 수 있다. 옵션을 부여하지 않으면 기본값은 NOFORCE로 설정된다.
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 뷰이름 [(column_aliases)]
AS
SELECT 문
;
FORCE : 쿼리문의 테이블, 컬럼, 함수 등이 일부 존재하지 않아도 생성 됨 |
FORCE 옵션을 사용 후 컴파일 오류가 발생하면 INVALID 상태로 뷰가 생성 되고, 오류가 없을경우 정상적으로 생성 된다. NOFORCE 옵션을 사용 후 컴파일 오류가 발생하면 뷰는 생성되지 않는다.
NOFORCE 사용
![]() |
NOFORCE 옵션을 사용했을 경우 쿼리문의 테이블, 컬럼 등이 존재하지 않을경우 컴파일 오류가 발생하며 뷰는 생성되지 않는다.
NOFORCE 옵션은 기본값이기 때문에 생략해도 된다. (CREATE OR REPLACE VIEW 뷰이름 AS)
FORCE 사용
![]() |
FORCE 옵션을 사용했을 경우 동일하게 컴파일 오류가 발생하지만 오류 메시지는 다르다. 쿼리문의 오류가 아니라 뷰자체의 오류가 발생한다.
컴파일 오류가 발생했지만 아래와 같이 뷰가 생성된 것을 확인 할 수 있다. 다만 INVALID 상태로 생성된다.
![]() |
테이블, 컬럼, 함수 등 정상적으로 생성 후 뷰를 재컴파일하면 정상적으로 동작한다.