IBM Books

管理およびプログラミングの手引き

要素内容および属性値を取り出す

1 つ以上の XML 文書から、要素 または属性 値の内容を取り出し (抽出) することができます (単一文書または集合文書検索)。 XML エクステンダーには、SQL データ・タイプごとに SQL SELECT 文節内で指定できるユーザー定義の抽出関数が備わっています。

XML データにリレーショナル・データとしてアクセスできるので、 要素と属性の内容および値の取り出しは、アプリケーションの開発に役立ちます。 たとえば、表 SALES_TAB 内の列 ORDER に 1000 の XML 文書が保管されていると仮定します。 SELECT 文節に抽出のための UDF を指定して情報を取り出す次の SQL ステートメントを使用して、 品目を注文した顧客すべての名前を取り出すことができます。

SELECT extractVarchar(Order, '/Order/Customer/Name') from sales_order_view
        WHERE price > 2500.00

この例では、抽出 UDF は要素 <customer> を列 ORDER から VARCHAR データ・タイプとして取り出します。 ロケーション・パスは /Order/Customer/Name です (ロケーション・パス構文については、 ロケーション・パスを参照)。 さらに、副次要素 <ExtendedPrice> の値が 2500.00 を超える <customer> 要素の内容だけを指定する WHERE 文節を使用することにより、 戻り値の数が減少します。

要素の内容または属性値を抽出する: 以下の構文を表関数または スカラー関数 として使用することにより、 表 13 にリストされている抽出 UDF を使用します。

extractretrieved_datatype(xmlobj, path)

ここで、

retrieved_datatype
抽出関数から戻されるデータ・タイプ。以下のタイプのいずれかです。

xmlobj
要素または属性が抽出される XML 列の名前です。 この列は、以下の XML ユーザー定義タイプのいずれかとして定義しなければなりません。

path
XML 文書内の要素または属性のロケーション・パス (/Order/Customer/Name など)。 ロケーション・パス構文については、 ロケーション・パスを参照してください。

表 13 はスカラーと表の両方の形式による抽出関数を示しています。

表 13. XML エクステンダーの抽出関数
スカラー関数 表関数 戻される列名 (表関数) 戻りタイプ
extractInteger() extractIntegers() returnedInteger INTEGER
extractSmallint() extractSmallints() returnedSmallint SMALLINT
extractDouble() extractDoubles() returnedDouble DOUBLE
extractReal() extractReals() returnedReal REAL
extractChar() extractChars() returnedChar CHAR
extractVarchar() extractVarchars() returnedVarchar VARCHAR
extractCLOB() extractCLOBs() returnedCLOB CLOB
extractDate() extractDates() returnedDate DATE
extractTime() extractTimes() returnedTime TIME
extractTimestamp() extractTimestamps() returnedTimestamp TIMESTAMP


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]