LDAP ラッパー

Virtual DataPort は、LDAP サーバーに含まれるデータを抽出するためのラッパーの作成をサポートしています。このタイプのラッパーを作成するには、LDAP サーバーへのアクセスデータをカプセル化するデータソース名を指定する必要があります (DATASOURCENAME パラメーター)。

抽出するデータを特定するためのオプションは 2 つあります。 OBJECTCLASSES パラメーターを使用して、ラッパーがアクセスする LDAP サーバー内のオブジェクトクラスのリストを指定できます。このオプションでは、サーバーへのリクエストは Virtual DataPort によってユーザーのクエリから自動的に生成されます。

また、ラッパーは、ソースに直接委任される式 (LDAPEXPRESSION) から作成することもできます。この式は、あらかじめ定義された補間変数 WHEREEXPRESSION (「 WHEREEXPRESSION の使用 」を参照) を含め、補間変数を保持できます。この変数は、単純クエリで OR 条件を LDAP サーバーに委任して、 NESTED 結合を最適化できることを忘れないでください。

このオプションで基本ビューを作成するには、式でアクセス可能なオブジェクトを 1 つ以上選択する必要があります。

必要に応じて、検索の種類を選択できます。再帰検索とルートノードレベルのみでの検索 (ルートノードはデータソース URL で指定) の 2 種類があります。デフォルトでは、再帰検索が選択されます。

RECURSIVESEARCHTRUE の場合、LDAP クエリでは、データソースパスによって参照されているノードの下位にあるサブツリーのすべてのノードが再帰的に検索対象になります。 FALSE の場合、LDAP クエリでは、ノード直下の子ノードのみが検索対象になります。

SINGLE-VALUETRUE の場合、基本ビューの多値属性は、その各値を 1 つのエレメントとする配列に変換されます。 FALSE の場合、すべての値が . を区切り文字として連結されます。

オプションで、他のラッパーと同様に、ラッパーによって返されるデータのスキーマを指定できます (OUTPUTSCHEMA)。

ラッパー作成ステートメントには OR REPLACE 修飾子を指定することもできます。指定されると、同じ名前のラッパーがすでに存在する場合に、その定義が新しい定義で置き換えられます。

最後に、特定のラッパープロパティを指定できます (SOURCECONFIGURATION)。Virtual DataPort は、ラッパーで実行できる操作を判別するためにこれらを考慮します。適用可能なプロパティは該当するステートメント宣言に示されています。詳細については、「 ラッパー構成プロパティ 」を参照してください。

CREATE WRAPPER LDAP ステートメントの構文
CREATE [ OR REPLACE ] WRAPPER LDAP <name:identifier>
    [ FOLDER = <literal> ]
    DATASOURCENAME = <name:identifier>
    OBJECTCLASSES = <name:literal> [, <name:literal> ]*
    [ LDAPEXPRESSION = <name:literal> ]
    [ RECURSIVESEARCH = { TRUE | FALSE } ]
    [ SINGLE-VALUE = { TRUE | FALSE } ]
    [ OUTPUTSCHEMA ( <field> [, <field> ]* ) ]
    [ SOURCECONFIGURATION ( [ <source configuration property>
                            [, <source configuration property> ]* ] ) ]

<field> ::=
      <name:identifier> [ = <mapping:literal> ] [ : <type:literal> ]
         [ ( { OBL | OPT } ) ]
         [ ( DEFAULTVALUE <literal> ) ]
         [ EXTERN ]
         [ <inline constraints> ]*
    | <name:identifier> [ = <mapping:literal> ] : ARRAY OF ( <register field> )
        [ ( DEFAULTVALUE <literal> ) ]
        [ <inline constraints> ]*
    | <name:register field>

<register field> ::=
    <name:identifier> [ = <mapping:literal> ] :
        REGISTER OF ( <field> [, <field> ]* )
          [ ( DEFAULTVALUE <literal> ) ]
          [ <inline constraints> ]*

<source configuration property> ::=
    DATAINORDERFIELDSLIST = { DEFAULT | ( <name:identifier> { ASC | DESC }
                                      [, <name:identifier> { ASC | DESC } ]* ) }

LDAP ラッパーの変更ステートメントの構文も同様です。

ALTER WRAPPER LDAP ステートメントの構文
ALTER WRAPPER LDAP <name:identifier>
    [ DATASOURCENAME = <name:identifier> ]
    [ OBJECTCLASSES = <name:literal> [, <name:literal> ]* ]
    [ LDAPEXPRESSION = <name:literal> ]
    [ RECURSIVESEARCH = { TRUE | FALSE } ]
    [ SINGLE-VALUE = { TRUE | FALSE } ]
    [ OUTPUTSCHEMA ( <field> [, <field> ]* ) ]
    [ SOURCECONFIGURATION ( [ <source configuration property>
    [, <source configuration property> ]* ] ) ]

<field> ::= (「 CREATE WRAPPER LDAP ステートメントの構文 」を参照)

<source configuration property> ::= (「 CREATE WRAPPER LDAP ステートメントの構文 」を参照)