用途
CREATE
INDEXTYPE
文を使用すると、(アプリケーション固有の)ドメイン索引を管理するルーチンを指定するオブジェクトである索引タイプを作成できます。索引タイプは、表、ビューおよび他のスキーマ・オブジェクトと同じネームスペースにあります。この文は、索引タイプ名を実装タイプに結合し、順番に索引タイプを実装するユーザー定義索引ファンクションおよびプロシージャを指定し、参照します。
関連項目: 索引タイプの実装の詳細は、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。 |
前提条件
自分のスキーマに索引タイプを作成する場合は、CREATE
INDEXTYPE
システム権限が必要です。他のユーザーのスキーマ内に索引タイプを作成する場合は、CREATE
ANY
INDEXTYPE
システム権限が必要です。どちらの場合も、実装タイプおよびサポートしている演算子に対するEXECUTE
オブジェクト権限が必要です。
索引タイプは、1つ以上の演算子をサポートしているため、索引タイプを作成する前に、サポートする演算子を設計し、これらの演算子に機能的な実装を提供する必要があります。
構文
create_indextype::=
array_DML_clause ::=
セマンティクス
schema
索引タイプが存在するスキーマ名を指定します。schema
を指定しない場合、自分のスキーマ内に索引タイプが作成されます。
indextype
作成する索引タイプの名前を指定します。
FOR
句を使用すると、索引タイプでサポートされる演算子のリストを指定できます。
schema
には、演算子を含むスキーマを指定します。schema
を指定しない場合、その演算子は自分のスキーマ内にあるとみなされます。
operator
には、索引タイプによってサポートされる演算子の名前を指定します。
この句に指定するすべての演算子は有効な演算子である必要があります。
parameter_type
には、演算子へのパラメータ・タイプを指定します。
USING
句を使用すると、新しい索引タイプを実装するタイプを指定できます。
implementation_type
には、適切なOracle Data Cartridge Interface(ODCI)を実装するタイプ名を指定します。
ODCIでルーチンを実装する有効なタイプを指定する必要があります。
実装タイプは、索引タイプと同じスキーマに存在する必要があります。
関連項目: このインタフェースの詳細は、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。 |
WITH LOCAL PARTITION
この句を使用すると、その索引タイプを使用してレンジ・パーティション表およびリスト・パーティション表にローカル・ドメイン索引を作成するように指定できます。この句は、いくつかの方法で、storage_tableと組み合せて使用します(「storage_table_clause」を参照)。
WITH
LOCAL
[RANGE]
PARTITION
WITH
SYSTEM
MANAGED
STORAGE
TABLES
を指定する方法をお薦めします。この組合せでは、システム管理記憶表を使用しますが、これは推奨の記憶域管理であり、これにより、レンジ・パーティション表およびリスト・パーティション表の両方にローカル・ドメイン索引を作成できます。RANGE
キーワードは、WITH
LOCAL
PARTITION
WITH
SYSTEM
MANAGED
STORAGE
TABLES
を指定すると不要となるため、この場合はオプションとなり無視されます。
WITH
LOCAL
RANGE
PARTITION
(RANGE
キーワードを含む)を指定してstorage_table
句を省略することができます。レンジ・パーティション表上のローカル・ドメイン索引は、ユーザー管理記憶表で、下位互換性のためにサポートされています。この組合せは効率性の低いユーザー管理記憶表を使用するため、お薦めしません。
この句を完全に省略すると、後でこの索引タイプを使用してレンジ・パーティション表またはリスト・パーティション表にローカル・ドメイン索引を作成することはできません。
この句を使用すると、この索引タイプに基づいて作成された索引の記憶表およびパーティション・メンテナンス操作の管理方法を指定できます。
WITH
SYSTEM
MANAGED
STORAGE
TABLES
を指定すると、統計データの格納がシステムで管理されます。statistics_type
に指定するタイプによって、システムで保持される表に統計関連の情報が格納されます。また、指定する索引タイプはすでに登録済であるか、またはWITH
SYSTEM
MANAGED
STORAGE
TABLES
句をサポートするように変更されている必要があります。
WITH
USER
MANAGED
STORAGE
TABLES
を指定すると、ユーザー定義の統計情報を格納する表は、ユーザーによって管理されます。これはデフォルトの動作です。
関連項目: ドメイン索引の記憶表の詳細は、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。 |
この句を使用すると、索引タイプでODCIIndexInsert
メソッドの配列インタフェースをサポートできるようになります。
typeおよびvarray_type 索引付けする列のデータ型がユーザー定義のオブジェクト型である場合、この句を指定して、Oracleがtype
の列値を保持するために使用するVARRAYのvarray_type
を識別する必要があります。索引タイプで型のリストがサポートされている場合、対応するVARRAY型のリストを指定できます。type
またはvarray_type
でschema
を省略した場合、型が自分のスキーマ内に定義されているとみなされます。
索引付けする列のデータ型が組込みシステム型である場合、その索引タイプに指定されたVARRAY型は、システムで定義されたODCI型よりも優先されます。
関連項目: ODCI配列インタフェースの詳細は、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。 |
例
索引タイプの作成例: 次の文は、position_indextype
という名前の索引タイプを作成し、その索引タイプでサポートされているposition_between
演算子、および索引インタフェースを実装するposition_im
タイプを指定します。この索引タイプを使用する拡張索引作成機能の使用例については、「拡張索引作成機能の使用方法」を参照してください。
CREATE INDEXTYPE position_indextype FOR position_between(NUMBER, NUMBER, NUMBER) USING position_im;