ALTER INDEXTYPE

目的

ALTER INDEXTYPE文を使用すると、索引タイプの演算子を追加または削除したり、実装タイプを変更したり、索引タイプのプロパティを変更することができます。

前提条件

索引タイプが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY INDEXTYPEシステム権限が必要です。

新しい演算子を追加する場合は、その演算子に対するEXECUTEオブジェクト権限が必要です。

実装タイプを変更する場合は、新しい実装タイプに対するEXECUTEオブジェクト権限が必要です。

構文

セマンティクス

IF EXISTS

IF EXISTSは、既存の表を変更する場合に指定します。

ALTER VIEWIF NOT EXISTSを指定すると、ORA-11544: Incorrect IF EXISTS clause for ALTER/DROP statementが発生します。

schema

索引タイプが存在するスキーマ名を指定します。schemaを指定しない場合、この索引タイプは自分のスキーマ内にあるとみなされます。

indextype

変更する索引タイプの名前を指定します。

ADD | DROP

ADDまたはDROP句を使用すると、演算子を追加または削除できます。

削除には特別な権限は必要ありません。

  • schemaには、演算子を含むスキーマを指定します。schemaを指定しない場合、その演算子は自分のスキーマ内にあるとみなされます。

  • operatorには、索引タイプによってサポートされる演算子の名前を指定します。

    この句に指定するすべての演算子は有効な演算子である必要があります。

  • parameter_typeには、演算子へのパラメータ・タイプを指定します。

using_type_clause

USING句を使用すると、索引タイプを実装する新しいタイプを指定できます。

array_DML_clause

この句を使用すると、ODCIIndexInsertメソッドで配列インタフェースをサポートする索引タイプを変更できます。

typeおよびvarray_type

索引付けする列のデータ型がユーザー定義オブジェクト型である場合は、Oracleがtypeの列値の保持に使用するVARRAY varray_typeを識別するために、この句を指定する必要があります。索引タイプで型のリストがサポートされている場合、対応するVARRAY型のリストを指定できます。typeまたはvarray_typeschemaを省略した場合、型が自分のスキーマ内に定義されているとみなされます。

索引付けする列のデータ型が組込みシステム型である場合、その索引タイプに指定されたVARRAY型は、システムで定義されたODCI型よりも優先されます。

COMPILE

この句を使用すると、索引タイプを明示的に再コンパイルできます。通常、索引タイプは自動的に再コンパイルされるため、この句は一部のアップグレード操作の後でのみ指定する必要があります。

storage_table_clause

この句では、索引タイプを変更する場合に、索引タイプを作成するときと同じ動作になります。詳細は、「CREATE INDEXTYPE」の「storage_table_clause」を参照してください。

WITH LOCAL PARTITION

この句では、索引タイプを変更する場合に、索引タイプを作成するときと同じ動作になります。詳細は、「CREATE INDEXTYPE」の句「WITH LOCAL PARTITION」を参照してください。

索引タイプの変更: 例

次の例では、「索引タイプの作成: 例」で作成したposition_indextype索引タイプをコンパイルします。

ALTER INDEXTYPE position_indextype COMPILE;