ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース1(11.1)
E05686-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

226 式フィルタのタイプ

式フィルタ機能では、事前定義された一連のタイプおよびこれらのタイプのパブリック・シノニムが提供されています。これらのタイプのほとんどは、式フィルタのプロシージャAPIを使用して索引パラメータを構成する場合に使用します。 EXF$TABLE_ALIASタイプは、1つ以上のデータベース表で定義されている式をサポートする場合に使用します。


関連項目:

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

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


式フィルタのタイプの要約

表226-1に、式フィルタのオブジェクト・タイプを示します。

この章で定義されているタイプに渡されるすべての値および名前で、大/小文字は区別されません。大/小文字の区別を保つには、値を二重引用符で囲んでください。

表226-1 式フィルタのオブジェクト・タイプ

オブジェクト・タイプ名 説明

EXF$ATTRIBUTE


式フィルタの索引のストアド属性および索引付き属性を指定します。

EXF$ATTRIBUTE_LIST


索引パラメータを構成する場合にストアド属性およびおよび索引付き属性のリストを指定します。

EXF$INDEXOPER


ストアド属性または索引付き属性を持つ述語で使用される共通演算子のリストを指定します。

EXF$TABLE_ALIAS


1つ以上のデータベース表で定義されている式を管理する場合に使用する特別な形式の要素属性を示します。

EXF$TEXT


プリファレンスを属性セットまたはイベント構造内のテキスト属性に関連付けます。

EXF$XPATH_TAG


一連のXPath述語を索引付けするためのXML要素またはXML属性を構成します。

EXF$XPATH_TAGS


式フィルタの索引パラメータを構成する場合にXMLタグのリストを指定します。



EXF$ATTRIBUTE

EXF$ATTRIBUTEタイプは、式フィルタの索引のストアド属性および索引付き属性を処理する場合に使用します。

構文

CREATE or REPLACE TYPE EXF$ATTRIBUTE AS OBJECT attr_name    VARCHAR2(350),
                                               attr_oper    EXF$INDEXOPER,
                                               attr_indexed VARCHAR2(5);

属性

表226-2 EXF$ATTRIBUTEの属性

属性 説明

attr_name

ストアド属性または索引付き属性を構成する演算式。

attr_oper

属性を持つ述語で使用される共通演算子のリスト。 デフォルト値はEXF$INDEXOPER('all')です。

attr_indexed

属性が索引付けされている場合はTRUE、そうでない場合はFALSEです。デフォルト値はFALSEです。


使用上の注意

共通演算子のリスト上のプリファレンスが存在しないストアド属性は、次のように表されます。

exf$attribute (attr_name => 'HorsePower(Model, Year)')

索引付き属性は、次のように表されます。

exf$attribute (attr_name => 'HorsePower(Model, Year)',
               attr_indexed => 'TRUE')

共通演算子のリストを持つ索引付き属性は、次のように表されます。

exf$attribute (attr_name => 'HorsePower(Model, Year)',
               attr_oper => exf$indexoper('=','<','>','>=','<='),
               attr_indexed => 'TRUE')

EXF$ATTRIBUTE_LIST

EXF$ATTRIBUTE_LISTタイプは、索引パラメータの構成時にストアド属性および索引付き属性のリストを指定する場合に使用します。

構文

CREATE or REPLACE TYPE EXF$ATTRIBUTE_LIST as VARRAY(490) of exf$attribute;

属性

なし

使用上の注意

ストアド属性および索引付き属性のリストは、次のように表されます。

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$INDEXOPER

EXF$INDEXOPERタイプは、ストアド属性または索引付き属性を持つ述語で使用される共通演算子のリストを指定する場合に使用します。

構文

CREATE or REPLACE TYPE EXFSYS.EXF$INDEXOPER as VARRAY(20) of VARCHAR2(15);

EXF$INDEXOPER配列の値は、次の表のリストに示すいずれかの値になります。

述語の説明
=
等価性述語
> より大述語
<
より小述語
>= 以上述語
<=
以下述語
!=、<>または^= 等しくない述語
IS NULL IS NULL述語
IS NOT NULL IS NOT NULL述語
ALL この表に示すすべての演算子(等価性述語からIS NOT NULL述語まで)
NVL NVL(等価性)演算子を含む述語
LIKE LIKE演算子を含む述語
BETWEEN BETWEEN述語

属性

なし

使用上の注意

共通演算子のリストを持つ属性は、次のように表されます。

exf$attribute (attr_name => 'HorsePower(Model, Year)',
               attr_oper => exf$indexoper('=','<','>','>=','<=', 'between'),
               attr_indexed => 'TRUE')

EXF$TABLE_ALIAS

EXF$TABLE_ALIASタイプは、属性セットに含めることができる特別な形式の要素属性です。これらの属性は、1つ以上のデータベース表で定義されている式を管理する場合に使用します。

構文

CREATE or REPLACE TYPE EXF$TABLE_ALIAS AS OBJECT table_name VARCHAR2(70);

属性

表226-3 EXF$TABLE_ALIASの属性

属性 説明

table_name

使用可能なスキーマ拡張を持つ表の名前。


使用上の注意

データベース表で定義されている一連の式では、対応する表の別名属性は次のように構成されています。

BEGIN
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE (
                               attr_set  => 'HRAttrSet',
                               attr_name => 'EMP',
                               tab_alias => exf$table_alias('SCOTT.EMP'));
  DBMS_EXPFIL.ADD_ELEMENTARY_ATTRIBUTE (
                               attr_set  => 'HRAttrSet',
                               attr_name => 'DEPT',
                               tab_alias => exf$table_alias('DEPT'));
END;
/

前述の属性セットを使用するExpression列には、EMP.JOB = 'Clerk' and EMP.NAME = 'Joe'形式の式を格納できます。JOBおよびNAMEは、SCOTT.EMP表の列の名前です。


EXF$TEXT

EXF$TEXTタイプは、プリファレンスを属性セットまたはイベント構造内のテキスト属性に関連付ける場合に使用します。

構文

CREATE or REPLACE TYPE EXFSYS.EXF$TEXT AS OBJECT(preferences VARCHAR2(1000));

属性

表226-4 EXF$TEXTの属性

属性 説明

preferences

LEXER、CLASSIFIER、WORDLISTなどのテキスト・プリファレンスの仕様。


使用上の注意

LEXERおよびWORDLISTプリファレンスを使用するテキスト述語は、EXF$TEXTオブジェクトの次のインスタンスを使用して次のように作成できます。

EXF$TEXT ('LEXER insrpt_lexer WORDLIST insrpt_wordlist');

EXF$XPATH_TAG

EXF$XPATH_TAGタイプは、一連のXPath述語を索引付けするためのXML要素またはXML属性を構成する場合に使用します。

構文

CREATE or REPLACE TYPE EXF$XPATH_TAG AS OBJECT tag_name    VARCHAR2(350),
                                               tag_indexed VARCHAR2(5),
                                               tag_type    VARCHAR2(30);

属性

表226-5 EXF$XPATH_TAGの属性

属性 説明

tag_name

XML要素またはXML属性の名前。 XML属性の名前の形式は、<ElementName>@<AttributeName>です。 オプションで、<Namespace URL>:<ElementName>@<AttributeName>のように、要素名にその名前空間URLの接頭辞を付けることができます。

tag_indexed

XMLタグが索引付けされている場合はTRUE、そうでない場合はFALSEです。

デフォルト

タグが位置フィルタの場合はTRUEです。

タグが値フィルタの場合はFALSEです。

tag_type

値フィルタの場合は値のデータ型です。位置フィルタの場合はNULLです。


使用上の注意

XML要素は、位置フィルタとして構成し、EXF$XPATH_TAGタイプの次のインスタンスを使用して索引付けすることができます。

exf$xpath_tag(tag_name    => 'stereo',       --- XML element
              tag_indexed => 'TRUE',         --- indexed predicate group
              tag_type    => null)           --- positional filter

XML属性は、値フィルタとして構成し、次のタイプのインスタンスを使用して索引付けすることができます。

exf$xpath_tag(tag_name    => 'stereo@make',  --- XML attribute
              tag_indexed => 'TRUE',         --- indexed predicate group
              tag_type    => 'VARCHAR(15)')  --- value filter

次のコマンドは、前述の2つのフィルタを、対応する要素の名前空間URLを使用して構成します。

exf$xpath_tag(tag_name => 'http://www.auto.com/car.xsd:stereo',
              tag_indexed => 'TRUE', --- indexed predicate group
              tag_type => null)      --- positional filter

exf$xpath_tag(tag_name => 'http://www.auto.com/car.xsd:stereo@make'
              tag_indexed => 'TRUE',     --- indexed predicate group
              tag_type => 'VARCHAR(15)') --- value filter

EXF$XPATH_TAGS

EXF$XPATH_TAGSタイプは、式フィルタの索引パラメータの構成時にXMLタグのリストを指定する場合に使用します。

構文

CREATE or REPLACE TYPE EXF$XPATH_TAGS as VARRAY(490) of EXF$XPATH_TAG;

属性

なし

使用上の注意

位置フィルタおよび値フィルタとして構成されているXMLタグのリストは、次のように表されます。

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
          )