マッパーでRDBからデータを得るには

TableDB 関数でデータベースを検索する

1. Mapperコンポーネントを含むフローを作成し、入出力のファイルパスやストリーム定義を設定する

2. マッピングウィンドウを表示し、パレットの「変換」タブから TableDB 関数(「RDB のテーブルを使って、キーから値に変換」)を配置する

 

HINT
ここでは、Mapper コンポーネントへの入力ストリームとして、FileGet コンポーネントを配置し、「商品番号」のフィールドに 4 行の商品番号を含む CSV ファイルを指定しています。

 

3. TableDB関数コンポーネントが選択されてい る状態で、インスペクタの「コネクション名」 プロパティで接続先のコネクションを選択する

4. TableDB 関数コンポーネントアイコンをダブルクリックすると、SQLビルダーが表示されるので、テーブルを選択し、取得したいフィールドを指定して、「OK」をクリックする

5. SQL文を修正するため、インスペクタの「SQL文」プロパティの値欄で「...」をクリックする

 

6. 「SQL 文プロパティの編集」ダイアログで、マッピングの内容に合わせて SQL 文を編集する

HINT
TableDB 関数での SQL 文の設定
SQLを手動で編集する場合は、JavaのPreparedStatementで使用できる「?」を使ってキーを指定します。たとえば、「select field2 from tablename where field1 =?」とSQL文に指定した場合は、TableDBへの入力が ? の部分に置き換わり検索条件が指定されます。キーが2つ以上ある場合は「select field2 from table name where field1=? and field3=?」のように指定します。この場合 TableDB への入力は2つ必要になり、それぞれが ? の部分に置き換わります。

 

7. SQL文の設定内容によって、コネクタの数が変更されるので、それに合わせてマッピングを設定する

フローを実行すると、指定したフィールドの値によってデータベースが検索され、該当するデータが取り出されます。上の例では、「商品」テーブルから、指定した商品番号を持つデータの商品番号と商品名が検索され、出力されます。

CAUTION
TableDB関数では、SQLビルダーで定義したパラメーター名、順序、データ型は使用されないので注意してください。特に、データ型に関しては、SQLビルダーで「SELECT テスト」を行うときは定義したパラメーターのデータ型が使用されますが、フローで実行するときは、実行時にパラメーターに入力されたデータのデータ型が使用されます。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
    キーワード:
他にご質問がございましたら、リクエストを送信してください

このセクションの記事

他のキーワードで検索する