サンプル: IBM DB2 XML 型列からデータを抽出する

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > MapForce とデータベース > XML データから /  データベースフィールドへのマッピング >

サンプル: IBM DB2 XML 型列からデータを抽出する

このサンプルはXML 型の IBM DB2 データベース列からのデータの抽出方法、および、ターゲット CSV ファイルへの書き込みの方法について説明しています。また、条件に応じて XML コンテンツを抽出するするために、 SQL 内に埋め込まれた XQuery ステートメントの使用方法についても説明されています。このサンプルは、テーブルを作成し、テーブルを表示する許可が存在する、 IBM DB2 データベースへのアクセスが必要です。

 

XML データが実際に含まれるデータベースを準備します。使用中のデータベースに固有のデータベース管理ツール、または、 MapForce で直接おこなうことができます。以下のステップを行ってください:

 

1.新規マッピングを作成し、DBQuery タブをクリックします。
2.「クイック接続」 ( quickconnect ) クリックして、ウィザードステップに従い、新規の データベース接続を作成します (次を参照してください: データベース接続のサンプル)。
3.SQL エディターに次のテキストを貼り付けます。この SQL クエリは、 ARTICLES という名前のデータベーステーブルを作成し、データと共に表示します。

-- Create the table
CREATE TABLE
   ARTICLES (
       id INTEGER NOT NULL,
       article XML ) ;
-- Populate the table
INSERT INTO ARTICLES VALUES
  (1, '<Article>
     <Number>1</Number>
     <Name>T-Shirt</Name>
     <SinglePrice>25</SinglePrice>
  </Article>'),
(2, '<Article>
     <Number>2</Number>
     <Name>Socks</Name>
     <SinglePrice>230</SinglePrice>
  </Article>'),
(3, '<Article>
     <Number>3</Number>
     <Name>Pants</Name>
     <SinglePrice>34</SinglePrice>
  </Article>'),
(4, '<Article>
     <Number>4</Number>
     <Name>Jacket</Name>
     <SinglePrice>5750</SinglePrice>
  </Article>');

4.「実行」 ( ic_execute-sql ) ボタンをクリックします。クエリの実行の結果がクエリの結果ウィンドウに表示されます。クエリの実行に成功すると、4つの行が新規に作成されたテーブルに追加されます。

 

次に、条件に応じて作成された ARTICLES テーブルから XML データを抽出するマッピングを作成します。目的は、 ARTICLES 列から 100 よりも高額な商品のみを抽出することです。

 

ステップ 1: データベースを追加する

1.マッピングペインに切り替えるために 「マッピング」 タブをクリックします。
2.「挿入」 メニューから 「データベース」 をクリックし、ウィザードステップに従い、 データベースに接続します。
3.データベースオブジェクトを選択するようにプロンプトされると、以前に作成されている ARTICLES テーブルを選択します。

mf_db2_xmltype1

 

ステップ 2:  フィールドに XML 型スキーマを割り当てる

1.コンポーネントの ARTICLE アイテムを右クリックし、フィールドに XML 型スキーマを割り当てる をコンテキストメニューから選択します。

mf_db2_xmltype2

2.「ファイル」を選択して、次のスキーマを参照します: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\DB2xsd.xsd

 

ステップ 3: SQL WHERE/ORDER コンポーネントを追加する

1.「挿入」 メニューからSQL WHERE/ORDER  をクリックします。
2.ARTICLE XML 型の列 SQL WHERE/ORDER の入力に接続します。

mf_db2_xmltype4

3.SQL WHERE/ORDER プロパティ ダイアログボックス内に次のテキストを入力します:

XMLEXISTS('$a/Article[SinglePrice>100]' PASSING ARTICLE as "a")

mf_db2_xmltype5

上のテキストは、 SQL クエリの "WHERE" の部分を示しています。マッピングのランタイムでは、ダイアログボックス上で表示されている "SELECT" の部分と結合されています。このステートメントは、 XMLEXISTS 関数と IBM DB2 データベースに固有の構文を使用しています。

 

ステップ 4: ターゲット CSV ファイルを追加する

1.「挿入」 メニューから 「テキストファイル」 をクリックします。
2.プロンプトされると、 「標準 CSV のために簡単な処理を使用する...」「継続する」を選択します。
3.「フィールドの追加」 3回クリックして、商品番号、名前、価格をそれぞれ保管する3つのフィールドを追加します。他の設定を保留します。
4.下に示されるようにマッピング接続を描きます。

mf_db2_xmltype6

マッピングの結果を、出力 タブ。をクリックして、プレビューすることができます。予想通り、 出力内に 100 よりも高額の価格の商品のみが出力に表示されます。

mf_db2_xmltype7


(C) 2019 Altova GmbH