メイン コンテンツをスキップする

2つのテーブルからSQLステートメントを生成

この記事ではtELTInputコンポーネント、tELTMapコンポーネント、tELTOutputコンポーネントを使って2つのテーブルからSQLステートメントを生成し、そのSQLステートメントをtWarnで表示するサンプルジョブを紹介します。

複数のデータベーステーブルからSQLステートメントを生成するためには、複数のtELTInputコンポーネントを入力としてtELTMapコンポーネントに接続し、それぞれのtELTInputコンポーネントでデータベーステーブルを指定します。これによって、tELTMapコンポーネントがtELTOutputコンポーネントに接続します。tELTMapコンポーネントのELTマップエディターで、テーブルカラムのマッピングとマッピング条件を定義する必要があります。定義された条件は、出力としてtELTOutputコンポーネントに渡されます。tELTOutputコンポーネントは、tELTMapコンポーネントの出力に従ってSQLステートメントを生成します。

このジョブにある各コンポーネントの主な設定は以下のとおりです。

  • tELTInput_1では、入力テーブルとしてTable_1が指定されています。このテーブルには、DECIMAL型であるCOL1COL2COL3という3つのカラムがあります。
  • tELTInput_2では、入力テーブルとしてTable_2が指定されています。このテーブルには、DECIMAL型であるCOLUMN1COLUMN2という2つのカラムがあります。
  • tELTMap_1では、テーブルカラム間のマッピングは下の図のようにコンポーネントのELTマップエディターで設定されます。
  • tELTOutput_1では、主な設定は次の図のとおりです(赤枠のものに注目してください)。
    以上の設定により、結果SQLステートメントは次のようになります。この結果、SQLステートメントはtELTOutput_1のQUERY変数に保存されます。
    INSERT INTO PUBLIC.Table_3(COL01,COL02,COL03,COL04)(
       SELECT Table_1.COL1, Table_1.COL2, Table_1.COL3, Table_2.COLUMN2
          FROM Table_1 INNER JOIN  Table_2 ON(Table_2.COLUMN1 = Table_1.COL1))
    情報メモ注: 実際に生成されるSQLステートメントは事前の予告なく変更されることがあります。
  • tWarn_1コンポーネントは、生成されたSQLステートメントをコンソールに表示します。そのためには、[Warn message] (警告メッセージ)フィールドに((String)globalMap.get("tELTOutput_1_QUERY"))と入力し、[Priority] (優先度)ドロップダウンリストで[Info] (情報)を選択します。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。