XML 文書構造を検索しているとき、 XML エクステンダーは汎用データ・タイプに変換された要素および属性値を検索しますが、 テキストは検索しません。 DB2 UDB テキスト・エクステンダーを使用して、XML について使用可能にされた列上で、 構造化または全テキスト検索を行うことができます。 テキスト・エクステンダーは、DB2 UDB バージョン 6.1 以降で XML 文書検索をサポートします。
テキスト・エクステンダー検索を使用するには、DB2 テキスト・エクステンダーをインストールして、 データベースおよび表を以下に示すように使用可能にしなければなりません。 テキスト・エクステンダー検索の使用方法を学ぶには、 DB2 ユニバーサル・データベース テキスト・エクステンダー 管理およびプログラミング でテキスト・エクステンダーの UDF による検索に関する章を参照してください。
XML について使用可能にされているデータベースがあると仮定して、以下のステップを使用して、 XML について使用可能にされた列の内容を検索するためにテキスト・エクステンダーを使用可能にします。 例を示すために、データベースの名前が SALES_DB、表の名前が ORDER、 そして XML 列の名前が XVARCHAR および XCLOB であるとします。
'connect to SALES_DB'
db2tx コマンド・プロンプトから、以下のようにタイプします。
'enable database'
'enable text column order xvarchar function db2xml.varchartovarchar handle varcharhandle ccsid 850 language us_english format xml indextype precise indexproperty sections_enabled documentmodel (Order) updateindex update'
'enable text column order xclob function db2xml.clob handle clobhandle ccsid 850 language us_english indextype precise updateindex update'
;list of document models [MODELS] modelname=Order ; an 'Order' document model definition ; left side = section name identifier ; right side = section name tag [Order] Order = /Order Order/Customer/Name = /Order/Customer/Name Order/Customer/Email = /Order/Customer/Email Order/Part/@color = /Order/Part/@color Order/Part/Shipment/ShipMode = /Order/Part/Shipment/ShipMode
テキスト・エクステンダーの検索機能は、XML エクステンダーの文書の構造化検索と一緒に使用できます。 推奨される方式は、文書要素または属性を検索する照会を作成して、 テキスト・エクステンダーを使用して要素内容または属性値を検索することです。
例: 以下のステートメントは、 テキスト・エクステンダーを使用して XML 文書テキストを検索します。 DB2 コマンド・ウィンドウから、以下のようにタイプします。
'connect to SALES_DB' 'select xvarchar from order where db2tx.contains(varcharhandle, 'model Order section(Order/Customer/Name) "Motors"')=1' 'select xclob from order where db2tx.contains(clobhandle, 'model Order section(Order/Customer/Name) "Motors"')=1'
テキスト・エクステンダー Contains() UDF は検索を実行します。
この例には、テキスト・エクステンダーを使用して列データを検索するために必要なすべてのステップは含まれていません。 テキスト・エクステンダー検索の概念および機能を学ぶには、 DB2 ユニバーサル・データベース テキスト・エクステンダー 管理およびプログラミング でテキスト・エクステンダーの UDF による検索に関する章を参照してください。