간단한 대답은 구문이 올바르지 않다는 것입니다. 은이어야하며 DISABLE
을 지정해야합니다.
NOVALIDATE
은 기본 키의 유효성을 검사하지 않으므로 기본 키이므로 자동으로 포함됩니다. 사랑스러운 더블 네거티브 인 경우 disable novalidate
에서 기본 키를 사용하지 않도록 설정할 수 없으므로 훨씬 더 명확합니다.
rely
은 선택 사항입니다. 보기를 작성할 때 기본 키를 고려할지 여부를 지정합니다. rely
의 반의어는 norely
입니다.
보기 제한 조건을 만드는 데 많은 제한이 있으며 아래 표를 사용하므로 @RC에서 이미 언급 한 것처럼 가치가 없습니다. 당신이 여기에만 다음 문서 위해 필요하지만 당신은 갈 :
SQL> create table tmp_test (a number(10), b varchar2(120));
Table created.
SQL>
SQL> insert into tmp_test
2 select level, 'b'
3 from dual
4 connect by level <= 20
5 ;
20 rows created.
SQL> commit ;
Commit complete.
SQL>
SQL> alter table tmp_test
2 add constraint tmp_test_pk
3 primary key (a)
4 using index;
Table altered.
SQL>
SQL> create or replace view v_tmp_test (a, b
2 , constraint v_tmp_test_pk primary key (a) rely disable novalidate) as
3 select a, b
4 from tmp_test
5 ;
View created.
SQL>
을 documentation에서 :
보기 제약
오라클은보기 제약 조건을 적용하지 않습니다. 그러나 뷰 의 조작은 기본 기본 테이블에 정의 된 무결성 제한 조건의 영향을받습니다. 즉, 기본 테이블에 대한 제약 조건을 통해 뷰 에 제약 조건을 적용 할 수 있습니다.
는
만의 고유, 기본 키 및 외부 키 제한 조건 뷰에 대한 을 지정할 수 있습니다보기 제약에
참고 제약 조건 테이블 제약의 부분 집합이며 다음과 같은 제한 사항이 적용됩니다 볼 수 있습니다. 그러나 WITH CHECK OPTION 절을 사용하여 뷰를 정의 할 수 있습니다. 이는 뷰에 대한 점검 제한 조건을 지정하는 것과 같습니다.
뷰 제약 조건은 DISABLE NOVALIDATE 모드에서만 지원됩니다. 은 다른 모드를 지정할 수 없습니다.뷰 제한 조건을 선언 할 때 키워드 DISABLE 을 지정해야합니다. 기본값이므로 NOVALIDATE 을 명시 적으로 지정할 필요가 없습니다.
RELY 및 NORELY 매개 변수는 선택 사항입니다. 뷰 제약 조건은 이 적용되지 않았기 때문에 보통 RELY 매개 변수를 으로 지정하여 더 유용하게 만듭니다. RELY 또는 NORELY 키워드는 DISABLE 키워드 앞에 와야합니다. 자세한 내용은 "RELY Clause"를 참조하십시오.
보기 제한 조건이 직접 적용되지 않으므로 INITIALLY DEFERRED 또는 DEFERRABLE을 지정할 수 없습니다.
references_clause의 using_index_clause, exceptions_clause 절 또는 ON DELETE 절을 지정할 수 없습니다.
오브젝트 열의 속성에 대한보기 제한 조건을 정의 할 수 없습니다.
출처
2012-02-06 13:32:08
Ben
그것은 나를위한 문서화의 문제입니다. –