2016-10-16 2 views
0
CREATE TYPE nums_list AS TABLE OF NUMBER; 

    CREATE TABLE mytest (
     id NUMBER, 
     num NUMBER, 
     tagged nums_list 
    ) 
    NESTED TABLE tagged STORE AS mytest_tagged_table; 

이제 tagged 중첩 테이블 열에 인덱스를 만들어야합니다.중첩 테이블 열에 대한 인덱스 만들기

그래서 documentation에 따라, 구문은 다음과 같이이다 : 나는 두 번째 매개 변수 document_typ을 무엇을 의미하지 않습니다

CREATE INDEX index_name 
ON nested_storage_table(NESTED_TABLE_ID, document_typ); 

? 이에 대한 설명을 찾지 못했습니다.

도움을 주시면 감사하겠습니다.

답변

1

이것은 Oracle 설명서의 동기화가되지 않는 흥미로운 예입니다. 인덱스 예제에는 유형 정의가 포함되어야합니다. 그러나이 예제는 the PL/SQL reference에서 찾을 수 있습니다. 그래서 document_typ 사용자 정의 형식의 메타 데이터 열의 일부 형태

CREATE TYPE textdoc_typ AS OBJECT 
    (document_typ  VARCHAR2(32) 
    , formatted_doc  BLOB 
    ) ; 

CREATE TYPE textdoc_tab AS TABLE OF textdoc_typ; 

: 그래서 PRINT_MEDIA.AD_TEXTDOCS_NTAB이 서명이 타입 TEXTDOC_TAB이다. 컬렉션 유형을 정의한 방식으로 인해이 열에 해당하는 항목이 없습니다. 색인 할 이름이 지정된 열이 없습니다.

중첩 테이블을 사용하는 이유와 왜 인덱스가 필요하다고 생각하는지에 대한 이해 없이는 확실한 해결책을 제시하기가 어렵습니다. 그러나이 당신을 맞게 될 수 있습니다

CREATE INDEX index_name 
    ON nested_storage_table(NESTED_TABLE_ID, numcol); 
:

CREATE OR REPLACE TYPE num_t AS OBJECT (numcol NUMBER); 

CREATE OR REPLACE TYPE nums_list AS TABLE OF num_t; 

그래서 당신은 그 테이블의 중첩 된 저장소에 인덱스를 구축 할 수 있습니다

관련 문제