ヘッダーをスキップ
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
11g リリース2(11.2)
B56262-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

65 DBMS_EXPFIL


注意:

この機能は、Oracle Databaseリリース11.2では非推奨で、リリース12.1では廃止されています。廃止の詳細は、My Oracle Support NoteID 1244535.1を参照してください。


DBMS_EXPFILパッケージには、属性セット、式セット、式の索引、オプティマイザ統計および権限を式フィルタで管理する場合に使用するすべてのプロシージャが含まれています。


関連項目:

詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』を参照してください。

この章では、次の項目について説明します。


DBMS_EXPFILの使用方法

この項では、ルール・マネージャのDBMS_EXPFILパッケージの使用に関連する項目について説明します。


セキュリティ・モデル

Oracle Databaseインストールでは、catexf.sqlスクリプトを実行してDBMS_EXPFILパッケージをロードし、必要な式フィルタのスキーマ・オブジェクトをEXFSYSスキーマに作成します。

DBMS_EXPFILは、EXFSYS所有のパッケージであり、AUTHID CURRENT_USERでコンパイルされます。無名PL/SQLブロックからコールされたすべてのDBMS_EXPFILサブプログラムは、現行のユーザーの権限を使用して実行されます。

COPY_ATTRIBUTE_SETプロシージャを発行する前に、ユーザーには、元の属性セットに関連づけられているオブジェクト・タイプに対するEXECUTE権限が必要です。

ユーザーが式を評価するためには、式が格納されている表に対するSELECT権限が必要です。SQL EVALUATE演算子は、式が格納されている表の所有者の権限を使用して式を評価します。問合せを発行したユーザーの権限は考慮されません。表の所有者は、式を挿入、更新および削除できます。他のユーザーが表を変更できるようになるためには、表に対するINSERT権限およびUPDATE権限と、表の特定のExpression列に対するINSERT EXPRESSION権限およびUPDATE EXPRESSION権限が必要です。

表の所有者は、GRANT_PRIVILEGEプロシージャを使用して、1つ以上のExpression列に対するINSERT EXPRESSION権限またはUPDATE EXPRESSION権限を他のユーザーに付与できます。権限タイプにALLを指定すると、両方の権限をユーザーに付与できます。

表に対してCREATE INDEX権限を付与されているユーザーは、ユーザーが表の所有者でないかぎり、式フィルタの索引を作成できません。

DBMS_EXPFIL.SYNC_TEXT_INDEXESプロシージャを使用してテキスト索引を正常に同期化するには、ユーザーにCTX_DDLパッケージに対するEXECUTE権限が必要です。

USER_EXPFIL_PRIVILEGESビューには、他のスキーマに属する式セットに対する現行のユーザーの権限、および現行のユーザーが所有する式セットに対する他のユーザーの権限がリストされます。


式フィルタのサブプログラムの要約

表65-1に、DBMS_EXPFILパッケージのサブプログラムを示します。

特に明記されていないかぎり、DBMS_EXPFILパッケージに定義されているプロシージャに渡されるすべての値と名前で、大/小文字は区別されません。大/小文字の区別を保つには、値を二重引用符で囲んでください。

表65-1 DBMS_EXPFILパッケージのサブプログラム

サブプログラム 説明

ADD_ELEMENTARY_ATTRIBUTEプロシージャ


指定の属性を属性セットに追加します。

ADD_FUNCTIONSプロシージャ


属性セットを含むファンクションの承認リストに、ファンクション、タイプまたはパッケージを追加します。

ASSIGN_ATTRIBUTE_SETプロシージャ


式が格納されている列に属性セットを割り当てます。

BUILD_EXCEPTIONS_TABLEプロシージャ


無効な式への参照を保持する例外表を作成します。

CLEAR_EXPRSET_STATSプロシージャ


式セットの述語統計を消去します。

COPY_ATTRIBUTE_SETプロシージャ


属性セットをコピーします。

CREATE_ATTRIBUTE_SETプロシージャ


属性セットを作成します。

DEFAULT_INDEX_PARAMETERSプロシージャ


属性セットにデフォルトの索引パラメータを割り当てます。

DEFAULT_XPINDEX_PARAMETERSプロシージャ


属性セットにデフォルトのXPath索引パラメータを割り当てます。

DEFRAG_INDEXプロシージャ


ビットマップ索引をオンラインで再作成して、断片化を減らします。

DROP_ATTRIBUTE_SETプロシージャ


未使用の属性セットを削除します。

GET_EXPRSET_STATSプロシージャ


式セットの述語統計を収集します。

GRANT_PRIVILEGEプロシージャ


ユーザーに式のDML権限を付与します。

INDEX_PARAMETERSプロシージャ


式セットに索引パラメータを割り当てます。

MODIFY_OPERATOR_LISTプロシージャ


特定の属性を持つ述語で使用される共通演算子のリストを変更します。

REVOKE_PRIVILEGEプロシージャ


ユーザーに付与されている式のDML権限を取り消します。

SYNC_TEXT_INDEXESプロシージャ


格納されている式のCONTAINS演算子に関連する述語を処理するために定義された索引を同期化します。

UNASSIGN_ATTRIBUTE_SETプロシージャ


式が格納されている列と属性セットとの関連付けを解除します。

VALIDATE_EXPRESSIONSプロシージャ


式のメタデータおよび列に格納されている式を検証します。

XPINDEX_PARAMETERSプロシージャ


式セットにXPath索引パラメータを割り当てます。



ADD_ELEMENTARY_ATTRIBUTEプロシージャ

このプロシージャは、指定の属性を属性セットに追加します。このプロシージャはオーバーロードされています。複数の機能を構文形式ごとに、定義とともに示します。

構文

指定の要素属性を属性セットに追加する場合:

DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE (
   attr_set   IN   VARCHAR2, 
   attr_name  IN   VARCHAR2, 
   attr_type  IN   VARCHAR2, 
   attr_defv1 IN   VARCHAR2 DEFAULT NULL);

表の別名である要素属性を識別して、属性セットに追加する場合:

DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE (
   attr_set   IN   VARCHAR2,
   attr_name  IN   VARCHAR2,
   tab_alias  IN   exf$table_alias);

属性セットへのテキスト属性の追加を許可する場合:

DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE (
   attr_set       IN   VARCHAR2,
   attr_name      IN   VARCHAR2,
   attr_type      IN   VARCHAR2,
   text_pref      IN   EXF$TEXT);
 

パラメータ

表65-2 ADD_ELEMENTARY_ATTRIBUTEプロシージャのパラメータ

パラメータ 説明

attr_set

この属性を追加する属性セットの名前。

attr_name

追加する要素属性の名前。同じセット内の2つの属性に同じ名前を指定することはできません。

attr_type

属性のデータ・タイプ。この引数には、標準のSQLデータ・タイプ、または現行のユーザーがアクセス可能なオブジェクト・タイプの名前を指定できます。

attr_defv1

要素属性のデフォルト値。

tab_alias

属性の別名を設定するデータベース表を識別するタイプ。

text_pref

LEXER、WORDLIST指定などのテキスト・プリファレンス。


使用上の注意

  • 要素属性を受ける属性セットが最初に既存のオブジェクト・タイプから作成された場合、他の属性は追加できません。

  • 属性セット内の1つ以上またはすべての要素属性は、表の別名として使用できます。要素属性が表の別名である場合、その要素属性に割り当てられる値は、対応する表のROWIDです。表の別名属性が1つ以上ある属性セットは、既存のオブジェクト・タイプからは作成できません。表の別名の詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』を参照してください。

  • 式が格納されている列にすでに割り当てられている属性セットには、要素属性は追加できません。

  • 属性のデフォルト値の指定は、表の列のデフォルト値の指定に類似しています。設定されたデフォルト値は、属性のデータ・タイプと一致している必要があります。たとえば、DATEデータ・タイプの属性の有効なデフォルト値は、SYSDATEおよびto_date('01-01-2004','DD-MM-YYYY')です。

  • 要素属性の追加の詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の属性セットの定義に関する項を参照してください。

  • 関連ビュー: USER_EXPFIL_ATTRIBUTE_SETSおよびUSER_EXPFIL_ATTRIBUTES

  • このプロシージャをtext_pref引数にバインドされたテキスト・プリファレンスとともに使用すると、属性セット内にテキスト属性が作成されます。このような属性のデータ・タイプは、VARCHAR2またはCLOBである必要があります。このプロシージャを使用して指定されたプリファレンスは、この属性セットを使用して式フィルタの索引を作成する場合にのみ検証されます。

  • これらのプリファレンスは、CONTAINS演算子に関連する述語を処理するCTXRULE索引の作成に使用されます。有効なプリファレンスは、CTXRULE索引の作成に使用するPARAMETERS句で有効なプリファレンスです。構文については、『Oracle Textアプリケーション開発者ガイド』を参照してください。

次のコマンドでは、2つの要素属性が属性セットに追加されます。

BEGIN
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE (
                               attr_set   => 'HRAttrSet',
                               attr_name  => 'HRREP',
                               attr_type  => 'VARCHAR2(30)'
                               attr_defv1 => 'Betty Smith');
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE (
                               attr_set  => 'HRAttrSet',
                               attr_name => 'DEPT',
                               tab_alias => exf$table_alias('DEPT'));
END;
/

次のコマンドでは、データベース時間をデフォルト値とする要素属性CreationTimeが定義されます。

BEGIN
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE (
                          attr_set   => 'PurchaseOrder',
                          attr_name  => 'CreationTime',
                          attr_type  => 'DATE',
                          attr_defvl => 'SYSDATE');
END;
/

また、次のコマンドを使用すると、CreationTime属性は特定の値に初期化されます(EVALUATE演算子に渡されるデータ・アイテムで値が明示的に指定されていない場合)。

BEGIN
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE (
                          attr_set   => 'PurchaseOrder',
                          attr_name  => 'CreationTime',
                          attr_type  => 'DATE',
                          attr_defvl => 'to_date(''01-01-2004'',''DD-MM-YYYY'')');
END;
/

次のコマンドでは、VARCHAR2データ・タイプのModel属性およびテキスト述語用に構成されたInsReport属性を含む属性セットが作成されます。

BEGIN
   DBMS_EXPFIL.CREATE_EVENT_STRUT(event_struct => 'Car4Sale');
   // create scalar attributes
   DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE(
                       attr_set  => 'Car4Sale',
                       attr_name => 'Model',
                       attr_type => 'VARCHAR2(30)');

   //create text attribute
   DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE(
                       attr_set  => 'Car4Sale',
                       attr_name => 'InsReport',
                       attr_type => 'CLOB',
                       attr_type => exf$text(
                                    'LEXER insrpt_lexer
                                     WORDLIST insrpt_wordlist'));
END;
/

ADD_FUNCTIONSプロシージャ

このプロシージャは、ファンクションの集合を表すユーザー定義ファンクション、パッケージ、またはタイプを属性セットに追加します。

構文

DBMS_EXPFIL.ADD_FUNCTIONS (
   attr_set   IN   VARCHAR2, 
   funcs_name IN   VARCHAR2);

パラメータ

表65-3 ADD_FUNCTIONSプロシージャのパラメータ

パラメータ 説明

attr_set

ファンクションを追加する属性セットの名前。

funcs_name

(ファンクションの集合を表す)ファンクション、パッケージまたはタイプの名前またはそのシノニム。


使用上の注意

  • デフォルトでは、属性セットによって、式セットで使用されるOracle Databaseが提供するすべてのSQLファンクションを暗黙的に参照できます。式セットでユーザー定義ファンクションを参照する場合は、そのファンクションが属性セットに明示的に追加されている必要があります。

  • ADD_FUNCTIONSプロシージャは、ファンクションの集合を表すユーザー定義ファンクション、パッケージまたはタイプを属性セットに追加します。新しい式または変更された式は、このリストを使用して有効性が検証されます。属性セットに追加されたファンクションは、格納されている式で使用されるため、DMLおよびDDL(データベース状態の変更)操作は実行しないでください。Oracle Databaseでは、このルールに対する違反は式の評価中の実行時にのみ捕捉されます。ADD_FUNCTIONSプロシージャ・コール中は違反はチェックされません。

  • ファンクションまたはパッケージの名前は、スキーマ拡張を使用して指定できます。スキーマ拡張を使用せずにファンクション名を指定した場合、式セットではスキーマ拡張を使用していない参照のみが有効であるとみなされます。セット内の式は、対応するシノニムを属性セットに追加することで、ファンクションまたはパッケージにシノニムを使用するように制限できます。これによって、他のスキーマに対する式セットの移植性が保持されます。

  • 属性セットにファンクションを追加する方法の詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の属性セットの定義に関する項を参照してください。

  • 関連ビュー: USER_EXPFIL_ATTRIBUTE_SETSおよびUSER_EXPFIL_EXPRESSION_SETS

次のコマンドでは、2つのファンクションが属性セットに追加されます。

BEGIN 
  DBMS_EXPFIL.ADD_FUNCTIONS (
   attr_set   => 'Car4Sale', 
   funcs_name => 'HorsePower');
  DBMS_EXPFIL.ADD_FUNCTIONS (
   attr_set   => 'Car4Sale', 
   funcs_name => 'Scott.CrashTestRating');
END;
/

ASSIGN_ATTRIBUTE_SETプロシージャ

このプロシージャは、ユーザー表のVARCHAR2列に属性セットを割り当ててExpression列を作成します。

構文

DBMS_EXPFIL.ASSIGN_ATTRIBUTE_SET (
   attr_set   IN   VARCHAR2,
   expr_tab   IN   VARCHAR2,
   expr_col   IN   VARCHAR2,
   force      IN   VARCHAR2 DEFAULT 'FALSE');

パラメータ

表65-4 ASSIGN_ATTRIBUTE_SETプロシージャのパラメータ

パラメータ 説明

attr_set

属性セットの名前。

expr_tab

式セットが格納されている表の名前。

expr_col

式が格納されている表の列の名前。

force

表の既存の式を信頼(および検証をスキップ)するために使用する引数。


使用上の注意

  • ASSIGN_ATTRIBUTE_SETプロシージャは、ユーザー表のVARCHAR2列に属性セットを割り当ててExpression列を作成します。属性セットには、式で使用される要素属性の名前とそのデータ・タイプ、およびすべてのファンクションが含まれています。Expression列(式を格納するためにexpr_colパラメータに命名される列)では、属性セットを使用して式セットに対する変更および追加の妥当性がチェックされます。

  • 属性セットは、その属性セットと同じスキーマにある表の列にのみ割り当てることができます。属性セットは、表の1つ以上の列に割り当てることができます。属性セットを式が格納されている列に割り当てると、関連するオブジェクト・タイプ用のメソッドが暗黙的に作成されます。この操作を正しく行うには、属性セットを割り当てる前に、オブジェクト・タイプに依存オブジェクトが含まれないようにしておきます。

  • デフォルトでは、関連付け時に、列に式が存在していない必要があります。ただし、列の値が有効な式であることがわかっている場合は、force引数に値'TRUE'を使用して、式が格納されている列に属性セットを割り当てることができます。

  • 要素属性の追加の詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』のExpression列の定義に関する項を参照してください。

  • 関連ビュー: USER_EXPFIL_ATTRIBUTE_SETSおよびUSER_EXPFIL_EXPRESSION_SETS

次のコマンドでは、式が格納されている列に属性セットが割り当てられます。式セットは、関連付け時に、空である必要があります。

BEGIN
  DBMS_EXPFIL.ASSIGN_ATTRIBUTE_SET (attr_set => 'Car4Sale', 
                                    expr_tab => 'consumer',
                                    expr_col => 'interest');
END;
/

BUILD_EXCEPTIONS_TABLEプロシージャ

このプロシージャは、検証に使用される例外表を現行のスキーマ内に作成します。

構文

DBMS_EXPFIL.BUILD_EXCEPTIONS_TABLE (
   exception_tab IN VARCHAR2);

パラメータ

表65-5 BUILD_EXCEPTIONS_TABLEプロシージャのパラメータ

パラメータ 説明

exception_tab

例外表の名前。


使用上の注意

  • 式の検証時に、無効な式への参照が格納されている例外表の名前をオプションで指定できます。BUILD_EXCEPTIONS_TABLEプロシージャは、現行のスキーマ内に例外表を作成します。

  • 詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の評価のセマンティクスに関する項、および「VALIDATE_EXPRESSIONSプロシージャ」を参照してください。

  • 関連ビュー: USER_TABLES

次のコマンドでは、現行のスキーマ内に例外表InterestExceptionsが作成されます。

BEGIN
  DBMS_EXPFIL.BUILD_EXCEPTIONS_TABLE (exception_tab => 'InterestExceptions');
END;
/

CLEAR_EXPRSET_STATSプロシージャ

このプロシージャは、表の列に格納されている式セットの述語統計を消去します。

構文

DBMS_EXPFIL.CLEAR_EXPRSET_STATS (
   expr_tab   IN   VARCHAR2,
   expr_col   IN   VARCHAR2);

パラメータ

表65-6 CLEAR_EXPRSET_STATSプロシージャのパラメータ

パラメータ 説明

expr_tab

式セットが格納されている表の名前。

expr_col

式が格納されている表の列の名前。


使用上の注意

次のコマンドでは、consumer表のinterest列に格納されている式セットの述語統計が消去されます。

BEGIN
  DBMS_EXPFIL.CLEAR_EXPRSET_STATS (expr_tab => 'consumer',
                                    expr_col => 'interest');
END;
/

COPY_ATTRIBUTE_SETプロシージャ

このプロシージャは、属性セットを、そのユーザー定義ファンクション・リストとデフォルトの索引パラメータとともに別のセットにコピーします。

構文

DBMS_EXPFIL.COPY_ATTRIBUTE_SET (
   from_set   IN   VARCHAR2,
   to_set     IN   VARCHAR2);

パラメータ

表65-7 COPY_ATTRIBUTE_SETプロシージャのパラメータ

パラメータ 説明

from_set

コピー元となる既存の属性セットの名前。

to_set

新しい属性セットの名前。


使用上の注意

  • スキーマ拡張した名前をfrom_set引数に使用すると、属性セットをスキーマ間でコピーできます。このコマンドを発行する前に、元の属性セットに関連づけられているオブジェクト・タイプに対するEXECUTE権限が必要です。スキーマ・オブジェクト(ユーザー定義ファンクション、表および埋込みオブジェクト)への参照が新しいスキーマ内で有効であることを確認してください。

  • 新しいセットのデフォルトの索引パラメータおよびユーザー定義ファンクション・リストは、元のセットとは無関係に変更できます。

  • 関連ビュー: ALL_EXPFIL_ATTRIBUTE_SETSおよびALL_EXPFIL_ATTRIBUTES

次のコマンドでは、属性セットCar4Saleがコピーされます。

BEGIN
  DBMS_EXPFIL.COPY_ATTRIBUTE_SET (from_set => 'Car4Sale', 
                                  to_set   => 'Vehicle');
END;
/

CREATE_ATTRIBUTE_SETプロシージャ

このプロシージャは、空の属性セットを作成するか、または一致する名前のオブジェクト・タイプから導出される要素属性の完全なセットを含む属性セットを作成します。

構文

DBMS_EXPFIL.CREATE_ATTRIBUTE_SET (
   attr_set   IN   VARCHAR2,
   from_type  IN   VARCHAR2 DEFAULT 'NO');

パラメータ

表65-8 CREATE_ATTRIBUTE_SETプロシージャのパラメータ

パラメータ 説明

attr_set

作成する属性セットの名前。

from_type

属性セットの属性を既存のオブジェクト・タイプから導出する必要がある場合はYES


使用上の注意

  • 属性セットに使用されるオブジェクト・タイプにユーザー・メソッドを含めることはできず、(ALTER TYPEコマンドを使用する)発展型をそのオブジェクト・タイプにすることはできません。属性セットの作成時に、このオブジェクト・タイプに依存オブジェクトが含まれないようにする必要があります。属性セットが既存のオブジェクト・タイプから導出されない場合、このプロシージャは一致する名前を持つオブジェクト・タイプを作成します。

  • 表の別名属性が1つ以上ある属性セットは、オブジェクト・タイプから導出できません。これを行うには、空の属性セットを作成し、DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTEプロシージャを使用して、1度に1つずつ要素属性を追加します。(詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』を参照してください。)

  • 詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の属性セットの定義に関する項、および「ADD_ELEMENTARY_ATTRIBUTEプロシージャ」を参照してください。

  • 関連ビュー: USER_EXPFIL_ATTRIBUTE_SETSおよびUSER_EXPFIL_ATTRIBUTES

次のコマンドでは、Car4Saleタイプから導出された必須の要素属性をすべて含む属性セットが作成されます。

CREATE OR REPLACE TYPE Car4Sale AS OBJECT 
                                   (Model   VARCHAR2(20), 
                                    Year    NUMBER, 
                                    Price   NUMBER, 
                                    Mileage NUMBER);
/
 
BEGIN 
  DBMS_EXPFIL.CREATE_ATTRIBUTE_SET(attr_set  => 'Car4Sale',
                                   from_type => 'YES');
END;
/
 

Car4Saleタイプが存在しない場合は、次の例に示すように、属性セットを最初から作成できます。

BEGIN
  DBMS_EXPFIL.CREATE_ATTRIBUTE_SET(attr_set => 'Car4Sale');
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE( 
                               attr_set  => 'Car4Sale',
                               attr_name => 'Model',
                               attr_type => 'VARCHAR2(20)');
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE(
                               attr_set  => 'Car4Sale',
                               attr_name => 'Year',
                               attr_type => 'NUMBER');
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE(
                               attr_set  => 'Car4Sale',
                               attr_name => 'Price',
                               attr_type => 'NUMBER');
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE(
                               attr_set  => 'Car4Sale',
                               attr_name => 'Mileage',
                               attr_type => 'NUMBER');
END;
/

DEFAULT_INDEX_PARAMETERSプロシージャ

このプロシージャは、属性セットにデフォルトの索引パラメータを割り当てます。また、属性リストに関連付けられているデフォルトのリストに対して、ストアド属性または索引付き属性の部分的なリストを追加または削除します。

構文

DBMS_EXPFIL.DEFAULT_INDEX_PARAMETERS (
   attr_set   IN   VARCHAR2,
   attr_list  IN   EXF$ATTRIBUTE_LIST,
   operation  IN   VARCHAR2 DEFAULT 'ADD');

パラメータ

表65-9 DEFAULT_INDEX_PARAMETERSプロシージャのパラメータ

パラメータ 説明

attr_set

属性セットの名前。

attr_list

式フィルタの索引の(デフォルトの)ストアド属性および索引付き属性の部分的なリストを含むEXF$ATTRIBUTE_LISTのインスタンス。

operation

索引パラメータのリストに対して実行する操作。デフォルト値はADDです。有効な値はADDおよびDROPです。


使用上の注意

  • 既存の式フィルタの索引は、対応する属性セットのデフォルト・パラメータが変更された場合でも変更されません。新規の式フィルタの索引の作成時および既存の索引の再作成時には、新規の索引のデフォルトが使用されます。(索引の再作成の詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』のALTER INDEX REBUILDに関する項を参照)。

  • 属性セットにデフォルトの索引パラメータを割り当てる方法の詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』のデフォルト・パラメータからの索引の作成に関する項を参照してください。

  • 関連ビュー: USER_EXPFIL_ATTRIBUTE_SETSおよびUSER_EXPFIL_DEF_INDEX_PARAMS

次のコマンドでは、指定したストアド属性および索引付き属性が属性セットのデフォルトの索引パラメータ・リストに追加されます。

BEGIN
 DBMS_EXPFIL.DEFAULT_INDEX_PARAMETERs(
    attr_set  => 'Car4Sale', 
    attr_list => exf$attribute_list (
       exf$attribute (attr_name => 'Model',            
                      attr_oper => exf$indexoper('='),
                      attr_indexed => 'TRUE'),         
       exf$attribute (attr_name => 'Price', 
                      attr_oper => exf$indexoper('all'), 
                      attr_indexed => 'TRUE'), 
       exf$attribute (attr_name => 'HorsePower(Model, Year)', 
                      attr_oper => exf$indexoper('=','<','>','>=','<='), 
                      attr_indexed => 'FALSE'),
       exf$attribute (attr_name => 'CrashTestRating(Model, Year)', 
                      attr_oper => exf$indexoper('=','<','>','>=','<='), 
                      attr_indexed => 'FALSE')),
    operation => 'ADD');
END;
/
 

次のコマンドでは、前述のリストからCrashTestRating(Model, Year)属性(ストアドまたは索引付き)が削除されます。

BEGIN
  DBMS_EXPFIL.DEFAULT_INDEX_PARAMETERS(
      attr_set  => 'Car4Sale', 
      attr_list => exf$attribute_list (
         exf$attribute (attr_name => 'CrashTestRating(Model, Year)')),
      operation => 'DROP');
END;
/

DEFAULT_XPINDEX_PARAMETERSプロシージャ

このプロシージャは、属性セットに関連付けられているデフォルトの索引パラメータにXPathパラメータの部分的なリストを追加(または削除)します。

構文

DBMS_EXPFIL.DEFAULT_XPINDEX_PARAMETERS (
   attr_set   IN   VARCHAR2,
   xmlt_attr  IN   VARCHAR2,
   xptag_list IN   EXF$XPATH_TAGS,
   operation  IN   VARCHAR2 DEFAULT 'ADD');

パラメータ

表65-10 DEFAULT_XPINDEX_PARAMETERSプロシージャのパラメータ

パラメータ 説明

attr_set

属性セットの名前。

xmlt_attr

XMLTypeデータ・タイプの属性の名前。

xptag_list

式フィルタの索引用に構成するXML要素と属性の部分的なリストを含むEXF$XPATH_TAGSタイプのインスタンス。

operation

索引パラメータのリストに対して実行する操作。デフォルト値はADDです。有効な値はADDおよびDROPです。


使用上の注意

  • 式セットで使用する属性セットには1つ以上のXMLタイプの属性(XMLTypeデータ・タイプで定義)を含めることができ、対応する式にはそれらの属性に対するXPath述語を含めることができます。式セット用に作成された式フィルタの索引は、XPath固有の索引パラメータ(およびXPath索引パラメータ以外のパラメータ)を使用して、これらのXPath述語を効率的に処理するようにチューニングできます。

  • DEFAULT_XPINDEX_PARAMETERSプロシージャは、属性セットに関連付けられているデフォルトの索引パラメータにXPathパラメータの部分的なリストを追加(または削除)します。XPathパラメータは、属性セット内の特定のXMLType属性に割り当てられ、この情報は、USER_EXPFIL_DEF_INDEX_PARAMSビューを使用して表示できます。DEFAULT_INDEX_PARAMETERSプロシージャおよびDEFAULT_XPINDEX_PARAMETERSプロシージャは、互いに独立して使用できます。これらは、属性セットのデフォルトの索引パラメータの共通リストをメンテナンスします。

  • 属性セットのデフォルトの索引パラメータに対するXPathパラメータの詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』のXPath述語の索引チューニングに関する項を参照してください。デフォルトの索引パラメータの詳細は、「DEFAULT_INDEX_PARAMETERSプロシージャ」も参照してください。

  • 関連ビュー: USER_EXPFIL_ATTRIBUTESおよびUSER_EXPFIL_DEF_INDEX_PARAMS


注意:

exf$xpath_tagタイプのtag_name引数に割り当てる値では、大/小文字が区別されます。

次のコマンドでは、指定したXMLタグが、位置フィルタ、値フィルタ、索引付き述語グループ、ストアド述語グループなどのプリファレンスとともに、デフォルトの索引パラメータ・リストに追加されます。

BEGIN
  DBMS_EXPFIL.DEFAULT_XPINDEX_PARAMETERS(
       attr_set   => 'Car4Sale',
       xmlt_attr  => 'Details',
       xptag_list =>                                    --- XPath tag list 
         exf$xpath_tags(
           exf$xpath_tag(tag_name    => 'stereo@make',  --- XML attribute
                         tag_indexed => 'TRUE',
                         tag_type    => 'VARCHAR(15)'), --- value filter
           exf$xpath_tag(tag_name    => 'stereo',       --- XML element
                         tag_indexed => 'FALSE',
                         tag_type    => null),          --- positional filter
           exf$xpath_tag(tag_name    => 'memory',       --- XML element
                         tag_indexed => 'TRUE',
                         tag_type    => 'VARCHAR(10)'), --- value filter
           exf$xpath_tag(tag_name    => 'GPS',
                         tag_indexed => 'TRUE',
                         tag_type    => null)
          )
        );
END;
/
 

次のコマンドでは、デフォルトの索引パラメータからstereo@makeタグが削除されます。

BEGIN
  DBMS_EXPFIL.DEFAULT_XPINDEX_PARAMETERS(
       attr_set   => 'Car4Sale',
       xmlt_attr  => 'Details',
       xptag_list =>                                    --- XPath tag list 
         exf$xpath_tags(
           exf$xpath_tag(tag_name    => 'stereo@make')
         ),
       operation => 'DROP'
       );
END;
/

DEFRAG_INDEXプロシージャ

このプロシージャは、ビットマップ索引をオンラインで再作成して断片化を減らします。

構文

DBMS_EXPFIL.DEFRAG_INDEX (
   idx_name   IN  VARCHAR2);

パラメータ

表65-11 DEFRAG_INDEXプロシージャのパラメータ

パラメータ 説明

idx_name

式フィルタの索引の名前。


使用上の注意

  • 式フィルタの索引の索引付き属性に対して定義されたビットマップ索引は、式セットに対して追加または更新されると断片化されます。これにより、パフォーマンスに影響が及ぶ可能性があります。DEFRAG_INDEXプロシージャは、ビットマップ索引をオンラインで再作成して断片化を削減します。

  • 索引の断片化は、式セットの変更時に解消できます。ただし断片化の解消は、ワークロードが比較的小さいとき(午前2時など)にスケジュールする必要があります。

  • 索引の再作成の詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の索引の格納とメンテナンスに関する項を参照してください。

  • 関連ビュー: USER_EXPFIL_INDEXESおよびUSER_INDEXES

次のコマンドを発行すると、式フィルタの索引に関連づけられているビットマップ索引の断片化が解消されます。

BEGIN
  DBMS_EXPFIL.DEFRAG_INDEX (idx_name => 'InterestIndex');
END;
/
 

DROP_ATTRIBUTE_SETプロシージャ

このプロシージャは、いずれの式セットでも使用されていない属性セットを削除します。

構文

DBMS_EXPFIL.DROP_ATTRIBUTE_SET (
   attr_set   IN   VARCHAR2);

パラメータ

表65-12 DROP_ATTRIBUTE_SETプロシージャのパラメータ

パラメータ 説明

attr_set

削除する属性セットの名前。


使用上の注意

  • DROP_ATTRIBUTE_SETプロシージャは、いずれの式セットでも使用されていない属性セットを削除します。最初に既存のオブジェクト・タイプから作成された属性セットを削除した場合、そのオブジェクト・タイプは残ります。そうでない場合は、属性セットとともにオブジェクト・タイプも削除されます。

  • 関連ビュー: USER_EXPFIL_ATTRIBUTE_SETSおよびUSER_EXPFIL_EXPRESSION_SETS

属性セットがExpression列で使用されていない場合、次のコマンドではその属性セットが削除されます。

BEGIN
  DBMS_EXPFIL.DROP_ATTRIBUTE_SET(attr_set => 'Car4Sale');  
END;
/

GET_EXPRSET_STATSプロシージャ

このプロシージャは、式セットの述語統計を計算して式フィルタ・ディクショナリに格納します。

構文

DBMS_EXPFIL.GET_EXPRSET_STATS (
   expr_tab   IN   VARCHAR2,
   expr_col   IN   VARCHAR2);

パラメータ

表65-13 GET_EXPRSET_STATSプロシージャのパラメータ

パラメータ 説明

expr_tab

式セットが格納されている表の名前。

expr_col

式が格納されている表の列の名前。


使用上の注意

  • 典型的な式セットが表の列に格納されている場合は、それらの式の述語統計(およびTOPパラメータ句)を使用して、対応する式フィルタの索引を構成できます。GET_EXPRSET_STATSプロシージャは、式セットの述語統計を計算して式フィルタ・ディクショナリに格納します。

  • 述語統計の使用方法の詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の統計からの索引作成に関する項を参照してください。

  • 関連ビュー: USER_EXPFIL_EXPRESSION_SETSおよびUSER_EXPFIL_EXPRSET_STATS

次のコマンドでは、consumer表のinterest列に格納されている式の述語統計が計算されます。

BEGIN
  DBMS_EXPFIL.GET_EXPRSET_STATS (expr_tab => 'consumer',
                                 expr_col => 'interest');
END;
/

GRANT_PRIVILEGEプロシージャ

このプロシージャは、1つ以上のExpression列に対する権限を他のユーザーに付与します。

構文

DBMS_EXPFIL.GRANT_PRIVILEGE (
   expr_tab   IN  VARCHAR2,
   expr_col   IN  VARCHAR2,
   priv_type  IN  VARCHAR2,
   to_user    IN  VARCHAR2);

パラメータ

表65-14 GRANT_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

expr_tab

式セットが格納されている表の名前。

expr_col

式が格納されている表の列の名前。

priv_type

付与する権限のタイプ。有効な値は、INSERT EXPRESSION、UPDATE EXPRESSIONおよびALLです。

to_user

権限を付与されるユーザー。


使用上の注意

  • SQLのEVALUATE演算子は、式が格納されている表の所有者の権限を使用して式を評価します。問合せを発行したユーザーの権限は考慮されません。表の所有者は、式を挿入、更新および削除できます。他のユーザーは、表に対するINSERT権限およびUPDATE権限と、表の特定のExpression列に対するINSERT EXPRESSION権限およびUPDATE EXPRESSION権限が必要です。

  • 表の所有者は、GRANT_PRIVILEGEプロシージャを使用して、1つ以上のExpression列に対するINSERT EXPRESSION権限またはUPDATE EXPRESSION権限を他のユーザーに付与できます。権限タイプにALLを指定すると、両方の権限をユーザーに付与できます。

  • 権限の付与および取消しの詳細は、「REVOKE_PRIVILEGEプロシージャ」および『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の権限の付与および取消しに関する項を参照してください。

  • 関連ビュー: USER_EXPFIL_EXPRESSION_SETSおよびUSER_EXPFIL_PRIVILEGES

consumer表の所有者は、次のコマンドを使用して、ユーザーSCOTTINSERT EXPRESSION権限を付与できます。ユーザーSCOTTが新しい式を式セットに追加できるようになるには、表に対するINSERT権限も必要です。

BEGIN
  DBMS_EXPFIL.GRANT_PRIVILEGE (expr_tab  => 'consumer',
                               expr_col  => 'interest',
                               priv_type => 'INSERT EXPRESSION',
                               to_user   => 'SCOTT');
END;

INDEX_PARAMETERSプロシージャ

このプロシージャは、索引の作成前に各式セットの索引パラメータを詳細にチューニングします。

構文

DBMS_EXPFIL.INDEX_PARAMETERS (
   expr_tab   IN   VARCHAR2,
   expr_col   IN   VARCHAR2,
   attr_list  IN   EXF$ATTRIBUTE_LIST,
   operation  IN   VARCHAR2 DEFAULT 'ADD');

パラメータ

表65-15 INDEX_PARAMETERSプロシージャのパラメータ

パラメータ 説明

expr_tab

式セットが格納されている表の名前。

expr_col

式が格納されている表の列の名前。

attr_list

ストアド属性と索引付き属性の部分的なリストを含むEXF$ATTRIBUTE_LISTのインスタンス。

operation

索引パラメータのリストに対して実行する操作。デフォルト値はADDです。有効な値はADDおよびDROPです。


使用上の注意

  • 属性セットは、ユーザー表の別々の列に格納された複数の式セットで使用できます。デフォルトでは、属性セットに関連付けられている索引パラメータが、式セットの式フィルタの索引の定義に使用されます。各式セットの索引を詳細にチューニングする必要がある場合は、CREATE INDEX文のPARAMETERS句に索引パラメータの小さいリストを指定できます。ただし、式フィルタの索引で多くの索引パラメータが使用されている場合または索引がXPath述語用に構成されている場合は、CREATE INDEX文でパラメータの詳細なチューニングはできません。

  • INDEX_PARAMETERSプロシージャは、索引の作成前に各式セットの索引パラメータを詳細にチューニングします。このプロシージャを使用すると、対応する属性セットのデフォルトをコピーし、式セットに対する追加の索引パラメータを選択して追加(または削除)できます。(XPath索引パラメータの追加および削除には、XPINDEX_PARAMETERSプロシージャを使用します。)索引パラメータのリストが空でない式セットに対して定義された式フィルタの索引では、常にこれらのパラメータが使用されます。式が格納されている列に対して式フィルタの索引がすでに定義されている場合、INDEX_PARAMETERSプロシージャは使用できません。

  • このプロシージャで実行可能な操作は、次のとおりです。

    • 対応する属性セットからデフォルトの索引パラメータ(XPath固有のパラメータを含む)の現在のリストを導出して、指定した式セットに割り当てる操作(operation引数に値DEFAULTを指定)。

    • 式セットに割り当てられている現在のパラメータ・リストに対して1つ以上の属性の追加(または削除)を行う操作(operation引数に値ADDまたはDROPを指定)。

    • 式セットに割り当てられている索引パラメータを消去する操作。これによって、ユーザーは、デフォルト・パラメータの使用を開始したり、パラメータを最初からチューニングできます(operation引数に値CLEARを指定)。


    注意:

    このプロシージャは、属性セットが複数の式セット間で共有されている場合にのみ有効です。それ以外の場合、属性セットに割り当てられているデフォルト値は、それらが使用される式セットに応じてチューニングできます。

  • 詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の完全パラメータからの索引作成に関する項、および「XPINDEX_PARAMETERSプロシージャ」を参照してください。

  • 関連ビュー: USER_EXPFIL_EXPRESSION_SETSUSER_EXPFIL_DEF_INDEX_PARAMSおよびUSER_EXPFIL_INDEX_PARAMS

次のコマンドでは、式セットの索引パラメータが、対応する属性セットに関連付けられているデフォルト値と同期されます。

BEGIN
  DBMS_EXPFIL.INDEX_PARAMETERS(expr_tab  => 'consumer',
                               expr_col  => 'interest',
                               attr_list => null, 
                               operation => 'DEFAULT');
END;
/

次のコマンドでは、式セットの索引パラメータにストアド属性が追加されます。

BEGIN
  DBMS_EXPFIL.INDEX_PARAMETERS(expr_tab  => 'consumer',
                               expr_col  => 'interest',
                               attr_list =>
                                exf$attribute_list (
                                 exf$attribute (
                                   attr_name => 'CrashTestRating(Model, Year)',
                                   attr_oper => exf$indexoper('all'),
                                   attr_indexed => 'FALSE')),
                               operation => 'ADD');
END;
/

次のコマンドでは、式セットに関連付けられている索引パラメータが消去されます。

BEGIN
  DBMS_EXPFIL.INDEX_PARAMETERS(expr_tab  => 'consumer',
                               expr_col  => 'interest',
                               attr_list => null, 
                               operation => 'CLEAR');
END;
/

以降の索引作成では、対応する属性セットに割り当てられているデフォルトの索引パラメータが使用されます。


MODIFY_OPERATOR_LISTプロシージャ

このプロシージャは、属性セットの特定の属性に関連付けられている共通演算子のリストを変更します。

構文

DBMS_EXPFIL.MODIFY_OPERATOR_LIST (
   attr_set   IN   VARCHAR2,
   attr_name  IN   VARCHAR2,
   attr_oper  IN   EXF$INDEXOPER);

パラメータ

表65-16 MODIFY_OPERATOR_LISTプロシージャのパラメータ

パラメータ 説明

attr_set

属性セットの名前。

attr_name

変更するストアド属性または索引付き属性の名前。

attr_oper

その属性を持つ述語で頻繁に使用される演算子の新しいリスト。


使用上の注意

  • MODIFY_OPERATOR_LISTプロシージャは、属性セットのデフォルトの索引パラメータに定義されている、ストアド属性および索引付き属性の演算子リストを変更します。属性の演算子リストを変更した場合でも、既存の式フィルタの索引は影響を受けません。更新された索引のデフォルト値は、新規の式フィルタの索引の作成時および既存の索引の再作成時に使用されます。

  • 関連ビュー: USER_EXPFIL_DEF_INDEX_PARAMS

次のコマンドでは、属性セットCar4Saleに定義されているHorsePower(Model,Year)属性に関連付けられている演算子リストが変更されます。

BEGIN
  DBMS_EXPFIL.MODIFY_OPERATOR_LIST (
    attr_set => 'Car4Sale',
    attr_name => 'HorsePower(Model, Year)',
    attr_oper => exf$indexoper('=','<','>', 'between'));
END;
/

REVOKE_PRIVILEGEプロシージャ

このプロシージャは、所有者が以前に付与した式の権限を取り消します。

構文

DBMS_EXPFIL.REVOKE_PRIVILEGE (
   expr_tab   IN  VARCHAR2,
   expr_col   IN  VARCHAR2,
   priv_type  IN  VARCHAR2,
   from_user  IN  VARCHAR2);

パラメータ

表65-17 REVOKE_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

expr_tab

式セットが格納されている表の名前。

expr_col

式が格納されている表の列の名前。

priv_type

取り消す権限のタイプ。

from_user

権限を取り消されるユーザー。


使用上の注意

  • 権限の付与および取消しの詳細は、「GRANT_PRIVILEGEプロシージャ」および『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の権限の付与および取消しに関する項を参照してください。

  • 関連ビュー: USER_EXPFIL_EXPRESSION_SETSおよびUSER_EXPFIL_PRIVILEGES

次のコマンドでは、ユーザーSCOTTに付与されているconsumer表のinterest列に対するINSERT EXPRESSION権限が取り消されます。

BEGIN
  DBMS_EXPFIL.REVOKE_PRIVILEGE (expr_tab  => 'consumer',
                                expr_col  => 'interest',
                                priv_type => 'INSERT EXPRESSION',
                                 from_user => 'SCOTT');
END;/

SYNC_TEXT_INDEXESプロシージャ

このプロシージャは、格納されている式のCONTAINS演算子に関連する述語を処理するために定義された索引を同期化します。

構文

DBMS_EXPFIL.SYNC_TEXT_INDEXES (
     expr_tab   IN   VARCHAR2);

パラメータ

表65-18 SYNC_TEXT_INDEXESプロシージャのパラメータ

パラメータ 説明

expr_tab

テキスト述語を含むExpression列が含まれている表の名前。


使用上の注意

  • 式が格納されている列に式フィルタの索引が定義されている場合、式のすべてのテキスト述語はCTXRULE索引を使用して索引付けされます。式セット内の述語の処理に使用される他のタイプの索引(スカラーおよびXML述語用のビットマップ索引または空間述語用の空間索引)とは異なり、テキスト述語を処理するために定義されているCTXRULE索引に、トランザクションの特性はありません。つまり、式が格納されている表にDML操作を実行してテキスト述語を更新した場合、新しい述語は対応するCTXRULE索引に自動的には反映されません。このため、CTXRULE索引が同期化されるまで一貫性が失われる可能性があります。このプロシージャを使用すると、1つ以上のExpression列が含まれている表に関連付けられているすべてのCTXRULE索引を同期化できます。このプロシージャは、すべてのCTXRULE索引を識別し、それらの索引のそれぞれに対してCTX_DDL.SYNC_INDEXプロシージャを起動します。

    テキスト索引を正常に同期化するには、CTX_DDLパッケージに対するEXECUTE権限が必要です。

次のコマンドでは、consumer表のExpression列に関連付けられているテキスト索引が同期化されます。

BEGIN
  DBMS_EXPFIL.SYNC_TEXT_INDEXES (expr_tab => 'consumer');
END;
/

UNASSIGN_ATTRIBUTE_SETプロシージャ

このプロシージャは、式が格納されている列に対する属性セットの割当てを解除します。

構文

DBMS_EXPFIL.UNASSIGN_ATTRIBUTE_SET (
   expr_tab   IN   VARCHAR2,
   expr_col   IN   VARCHAR2);

パラメータ

表65-19 UNASSIGN_ATTRIBUTE_SETプロシージャのパラメータ

パラメータ 説明

expr_tab

式セットが格納されている表の名前。

expr_col

式が格納されている表の列の名前。


使用上の注意

  • Expressionデータ・タイプの列は、属性セットの割当てを解除することで、元のVARCHAR2タイプに変換できます。式が格納されている列に対する属性セットの割当ての解除は、その列に式フィルタの索引が定義されていない場合に実行できます。

  • 属性セットの割当てについては、「ASSIGN_ATTRIBUTE_SETプロシージャ」を参照してください。

  • 関連ビュー: USER_EXPFIL_EXPRESSION_SETSおよびUSER_EXPFIL_INDEXES

次のコマンドでは、consumer表のinterest列に対して以前に割り当てられた属性セットの割当てが解除されます。(『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の式データのバルク・ロードに関する説明を参照してください。)

BEGIN
  DBMS_EXPFIL.UNASSIGN_ATTRIBUTE_SET (expr_tab => 'consumer',
                                      expr_col => 'interest');
END;
/ 

VALIDATE_EXPRESSIONSプロシージャ

このプロシージャは、セット内のすべての式の妥当性を検証します。

構文

DBMS_EXPFIL.VALIDATE_EXPRESSIONS (
   expr_tab      IN  VARCHAR2,
   expr_col      IN  VARCHAR2,
   exception_tab IN  VARCHAR2 DEFAULT NULL);

パラメータ

表65-20 VALIDATE_EXPRESSIONSプロシージャのパラメータ

パラメータ 説明

expr_tab

式セットが格納されている表の名前。

expr_col

式が格納されている表の列の名前。

exception_tab

例外表の名前。この表は、BUILD_EXCEPTIONS_TABLEプロシージャを使用して作成されます。


使用上の注意

  • 表に格納されている式は、スキーマ・オブジェクト(ユーザー定義ファンクション、表など)を参照している場合があります。これらのスキーマ・オブジェクトが削除または変更されると、式が無効になり、それ以降の評価(EVALUATE演算子による問合せ)が失敗する可能性があります。

  • デフォルトでは、無効な式が最初に見つかった時点で、式の検証プロシージャは失敗します。コール元は、オプションで、無効なすべての式の参照が格納される例外表を渡すことができます。このプロシージャは、セット内の式を検証する他に、関連する索引のパラメータ(ストアド属性と索引付き属性)およびユーザー定義関数の承認済リストも検証します。索引パラメータまたはユーザー定義ファンクション・リストにエラーがある場合は、コール元に即時にレポートされます。

  • 詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』の評価のセマンティクスに関する項、および「BUILD_EXCEPTIONS_TABLEプロシージャ」を参照してください。

  • 関連ビュー: USER_EXPFIL_EXPRESSION_SETSUSER_EXPFIL_ASET_FUNCTIONSおよびUSER_EXPFIL_PREDTAB_ATTRIBUTES

次のコマンドでは、consumer表のinterest列に格納されている式が検証されます。

BEGIN
  DBMS_EXPFIL.VALIDATE_EXPRESSIONS (expr_tab => 'consumer',
                                    expr_col => 'interest');
END;
/ 

XPINDEX_PARAMETERSプロシージャ

このプロシージャは、INDEX_PARAMETERSプロシージャと組み合せて使用します。それによって、各式セットのXPath固有の索引パラメータを詳細にチューニングします。

構文

DBMS_EXPFIL.XPINDEX_PARAMETERS (
   expr_tab   IN   VARCHAR2,
   expr_col   IN   VARCHAR2,
   xmlt_attr  IN   VARCHAR2,
   xptag_list IN   EXF$XPATH_TAGS,
   operation  IN   VARCHAR2 DEFAULT 'ADD');

パラメータ

表65-21 XPINDEX_PARAMETERSプロシージャのパラメータ

パラメータ 説明

exp_tab

式セットが格納されている表の名前。

expr_col

式が格納されている表の列の名前。

xmlt_attr

XMLTypeデータ・タイプの属性の名前。

xptag_list

XML要素および属性の部分的なリストを含むEXF$XPATH_TAGSタイプのインスタンス。

operation

索引パラメータのリストに対して実行する操作。デフォルト値はADDです。有効な値はADDおよびDROPです。


使用上の注意

  • 1つの属性セットが複数の式セットで共有されている場合は、INDEX_PARAMETERSプロシージャを使用して、式セットごとに単純な(XPath以外の)索引パラメータをチューニングできます。各式セットのXPath固有の索引パラメータを詳細にチューニングするには、XPINDEX_PARAMETERSプロシージャをINDEX_PARAMETERSプロシージャと組み合せて使用します。

  • 詳細は、「INDEX_PARAMETERSプロシージャ」、および『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』のXPath述語の索引のチューニングに関する項を参照してください。

  • 関連ビュー: USER_EXPFIL_ATTRIBUTESUSER_EXPFIL_DEF_INDEX_PARAMSおよびUSER_EXPFIL_INDEX_PARAMS


    注意:

    exf$xpath_tagタイプのtag_name引数に割り当てる値では、大/小文字が区別されます。

次のコマンドでは、式セットの索引パラメータ(XPathおよびXPath以外)が、対応する属性セットに関連付けられているデフォルト値と同期されます。

BEGIN
  DBMS_EXPFIL.INDEX_PARAMETERS(expr_tab  => 'consumer',
                               expr_col  => 'interest',
                               attr_list => null, 
                               operation => 'DEFAULT');
END;
/

次のコマンドでは、XPath固有の索引パラメータが式セットに追加されます。

BEGIN
  DBMS_EXPFIL.XPINDEX_PARAMETERS(expr_tab   => 'consumer',
                                 expr_col   => 'interest',
                                 xmlt_attr  => 'details',
                                 xptag_list =>
                                  exf$xpath_tags(
                                   exf$xpath_tag(tag_name    => 'GPS',
                                                 tag_indexed => 'TRUE',
                                                 tag_type    => NULL)),
                                 operation  => 'ADD');
END;
/