2015-01-23 2 views
2

'Document'오브젝트 유형 테이블을 작성했습니다. 이 테이블에는 여러 하위 유형의 문서가 들어 있습니다 (예 : Recipe, Publication, Contract). 이러한 하위 유형은 모두 공통 속성 (ID, 제목, 파일 크기)을 포함하지만 추가 속성 (예 : 주식 번호)을 포함 할 수 있습니다. 공통적으로 검색된 공통 속성에 대한 색인을 만들었지 만 공통적으로 검색된 하위 유형 특정 속성에 색인을 생성하려고합니다.SQL 오브젝트 테이블에서 부속 유형 특정 속성에 대한 인덱스 작성

CREATE INDEX i_stock_number 
ON DOCUMENTS d (Stock_Number) WHERE VALUE(d) IS OF TYPE(Publication); 

또는 가능

CREATE INDEX i_stock_number 
ON DOCUMENTS (TREAT(DOCUMENTS AS Publication).Stock_Number); 
:

CREATE INDEX i_title 
ON Documents (Title); 

나는 다음과 같은 일을하고 싶습니다 :

예를 들어, 나는 문서 테이블의 제목에 대한 인덱스를 생성

하위 유형 특정 속성에 대한 색인을 작성하는 방법을 결정할 수 있도록 도와 주시겠습니까?

감사합니다. 이 같은 데이터 모델을 가정

답변

1
create index i_stock_number 
on documents d 
(treat(value(d) as publication).stock_number); 

:

create or replace type document is object 
(
    id number, 
    title varchar2(100), 
    file_size number 
) not final; 

create or replace type publication under document 
(
    stock_number number 
); 

create table documents of document; 

insert into documents values(publication(1, 'title', 100, 200)); 
commit; 
+0

정말 고마워요! 완벽하게 작동합니다! –

관련 문제