RecordSQL - レコードのSQLによる加工
入力ストリームのレコード(複数指定可)をRDBのテーブルに置き換えて指定されたSQLで加工します。
■ストリーム情報
| 入力 | フォーマット | Record,CSV,FixedLength |
| 接続数 | 無制限 |
| 出力 | フォーマット | Record,CSV,FixedLength |
| 説明 | SQLにより加工されたレコードを出力します。 |
■コンポーネントプロパティ
| 名前 | プロパティ型 | マッピング | 説明 |
| SQL文 | string | 入力&出力 |
レコードを加工するためのSQL(select文)を指定します。
SQLで使用するテーブル名やフィールド名は以下のように記述します。
- テーブル名 - 入力ストリームの接続順にin[1], in[2], ... というテーブル名にします
- フィールド名 - 入力ストリームで定義されているFieldの順にfield[1], field[2], ... というフィールド名にします
in[x], field[y]はすべて小文字で記述します。
ここで使用できるSQLはHSQLDB version 1.8でサポートされているSQL文のみです。
|
| ループを開始 | loopProcess | - |
結果セットをまとめて出力するか1レコードずつループして出力するか選択します。
| はい [true]
| - | ループの起点となって1レコード(行)ずつストリームに出力されます。
|
| いいえ [false]
| - | すべてのレコード(行)がまとめてストリームに出力されます。
|
|
| Field | category | - |
ストリームにて出力ストリームのフィールド定義を行います。
SQL文プロパティで指定したSQL(select文)の出力フィールドに個数とTypeが合うようにフィールド定義を行います。
|
■ループ処理
ループを開始プロパティがはいの場合、このコンポーネントがループの起点となって処理されたレコードは1レコードずつ出力されます。
■トランザクション処理
| コミット | 何もしません。 |
| ロールバック | 何もしません。 |
■エラー処理
| タイプ | パラ メータ | エラー処理フロー へのストリーム | エラー コード | 説明 |
| 汎用 |
なし
| コンポーネントの入力ストリーム |
なし
| SQL文プロパティに値が設定されていない場合 |
| レコードが無い |
なし
| コンポーネントの入力ストリーム |
なし
| 出力ストリームのレコードが0件の場合 |
■制限事項
- 大量のレコードをソートすると実行時にエラーになることがあります。
-
ループを開始プロパティがはいの場合に、出力ストリーム(CSV, FixedLength)の読込み開始行プロパティとして2以上の値を設定すると、出力ストリームは0行のストリームデータとなります。ループを開始プロパティがはいの場合には、出力ストリームの読込み開始行プロパティとしては1を設定するようにしてください。
■SQL文プロパティの例
- 入力ストリームに2つ以上のFieldが定義されているとして、1番目のFieldで昇順でソートし、1番目と2番目のFieldを出力します。
select field[1], field[2] from in[1] order by field[1] asc
- 1番目の入力ストリームの3番目のFieldと2番目の入力ストリームの1番目のFieldをキーにinner joinを行います。
select in[1].field[1], in[1].field[2], in[2].filed[2] from in[1] inner join in[2] on in[1].field[3] = in[2].field[1]