RecordSQL - レコードのSQLによる加工

入力ストリームのレコード(複数指定可)をRDBのテーブルに置き換えて指定されたSQLで加工します。

■ストリーム情報

入力フォーマットRecord,CSV,FixedLength
接続数無制限
出力フォーマットRecord,CSV,FixedLength
説明SQLにより加工されたレコードを出力します。

■コンポーネントプロパティ

名前プロパティ型マッピング説明
モードchoice- 処理を行う方法を指定します。 オンメモリを指定した場合はFlowServiceのメモリを使用して処理を行うのでパフォーマンスが上がります。 RDBを指定した場合はオンメモリと比べて大量のレコードを処理することができます。
オンメモリ [OnMemory] - オンメモリで処理を行います。
RDB [RDB] - コネクション名 で指定されたRDBを使用して処理を行います。
コネクション名connection- 接続先のRDBを指定します。 コネクションペインまたは管理コンソールにて作成されたRDB接続名を選択します。 サポートされるRDBはHSQLDBです。
接続先のRDBとしてInternalDataStorageを使用することができます。 ただし、このコンポーネント以外ではInternalDataStorageは使用しないでください。
SQL文string入力&出力 レコードを加工するためのSQL(select文)を指定します。
SQLで使用するテーブル名やフィールド名は以下のように記述します。
  • テーブル名 - 入力ストリームの接続順にin[1], in[2], ... というテーブル名にします
  • フィールド名 - 入力ストリームで定義されているFieldの順にfield[1], field[2], ... というフィールド名にします
in[x], field[y]はすべて小文字で記述します。
ここで使用できるSQLはHSQLDB version 2.4.1でサポートされているSQL文のみです。
ループを開始loopProcess- 結果セットをまとめて出力するか1レコードずつループして出力するか選択します。
はい [true] - ループの起点となって1レコード(行)ずつストリームに出力されます。
いいえ [false] - すべてのレコード(行)がまとめてストリームに出力されます。
精度int- フィールドの型がDecimalの場合に精度を指定します。
小数点以下の桁数int- フィールドの型がDecimalの場合に小数点以下の桁数を指定します。
末尾の0を削除boolean- フィールドの型がDecimalの場合に小数点以下の末尾の0を切り捨てるかどうかを指定します。
はい [true] - 小数点以下の末尾の0を切り捨てて出力します。
いいえ [false] - 小数点以下の末尾の0を切り捨てずに出力します。

■ループ処理

ループを開始 プロパティがはいの場合、このコンポーネントがループの起点となって処理されたレコードは1レコードずつ出力されます。

■トランザクション処理

コミット何もしません。
ロールバック何もしません。

■エラー処理

タイプパラメーターエラー処理フロー
へのストリーム
エラー
コード
説明
汎用 なし コンポーネントの入力ストリーム1コネクション名に指定した接続先のRDBがHSQLDBでない場合
3コネクション名に値が設定されていない場合
4SQL文に値が設定されていない場合
レコードが無い なし コンポーネントの入力ストリーム2出力ストリームのレコードが0件の場合

■制限事項

■SQL文中のカラムと出力ストリームのフィールドの関係

本コンポーネントの出力ストリームとしてレコードを取得するには、ストリームペインにフィールドを定義する必要があります。SQL文 プロパティで指定したSQL(select文)のカラムに個数とデータ型が合うようにフィールド定義を行います。

カラム数が出力ストリームで定義されたフィールド数と異なる場合や、カラムのデータ型が対応するフィールドのデータ型と異なる場合でも、順序によってマッピングされます。

■SQL文プロパティの例