## ロジック名

SQL実行によるデータ取得

## 機能

SQLを実行してデータを取得します。

## データ型

場所 | 型
--- | ---
ロジックの出力 | 文字列

詳細は「ロジックの仕様」を参照してください。

## プロパティ

カテゴリ | プロパティ | 説明
--- | --- | ---
必須設定 | リソース名 | SQL実行に使用するリソースを指定します。
必須設定 | SQL文 | 実行するSQL文を指定します。
必須設定 | パラメータ定義 | パラメータの型を指定します。
マッチング・レコードが0件 | 処理オプション | マッチング・レコードが0件の場合の処理方法を指定します。
マッチング・レコードが0件 | 代替文字列 | 代替文字列を指定します。
コメント | コメント | 仕様書にも設定したコメントが出力されます。変換処理には関係しません。

### マッチング・レコードが0件/処理オプション

オプション | 説明
--- | ---
例外を発生させる | 以下の例外を発生させます。 com.appresso.ds.vp.mapper.fastconverter.NoSuchRecordException: ExecuteSelectQueryロジック - <SQL文>
代替文字列に置換 | [代替文字列]で指定した値に置き換えます。

## 機能の詳細

### SQLパラメータ

SQL実行によるデータ取得ロジックでは、SQLパラメータを使用することができます。

#### SQLパラメータの使用方法

SQLパラメータは「?{name}」と記述します。入力ハンドラが増えパラメータをマッピングすることが可能になります。
たとえば、SQL文に「select value from test_table where key1 = ?{param1} and key2 => ?{param2}」と記述した場合、2つの入力ハンドラが設定され、SQLパラメータ(param1、param2)に値をマッピングすることができます。

### 使用可能なグローバルリソース

[リソース名]では、以下のアダプタのグローバルリソースを指定できます。

アダプタの種類
Accessアダプタ
DB2アダプタ
Oracleアダプタ
PostgreSQLアダプタ
SQL Serverアダプタ
JDBCアダプタ
ODBCアダプタ

## 仕様制限

- SQLパラメータ名に「?」を使用することはできません。
- 複数行、複数列のデータを取得した場合、最初の行の最初の列を返します。
- 接続先のデータベースやアプリケーションの仕様により、SQLで使用できない型やSQLパラメータに使用できない型が存在します。
  詳細については、接続先のデータベースやアプリケーションのベンダーに問い合わせてください。

## ロジックの使用例

### マッピング定義

### ロジックの設定と処理結果

SQLを実行してテーブルからデータを取得します。

##### プロパティ設定

プロパティ | 設定値
--- | ---
リソース名 | DB
SQL文 | select VALUE from test_table where DAY_ID = ?{param1} and LOCALE = ?{param2}
パラメータ定義 |
パラメータ名 | 型
--- | ---
param1 | int (int)
param2 | varchar (String)
マッチング・レコードが0件/処理オプション | 代替文字列に置換
マッチング・レコードが0件/代替文字列 | NOT_EXIST

##### 入力データ

1 | JAPANESE
2 | JAPANESE
3 | JAPANESE
4 | JAPANESE
5 | ENGLISH
6 | ENGLISH
7 | ENGLISH

##### 検索対象テーブル

DAY_ID | LOCALE | VALUE
--- | --- | ---
1 | JAPANESE | 日曜日
2 | JAPANESE | 月曜日
3 | JAPANESE | 火曜日
4 | JAPANESE | 水曜日
5 | JAPANESE | 木曜日
6 | JAPANESE | 金曜日
7 | JAPANESE | 土曜日
1 | ENGLISH | Sunday
2 | ENGLISH | Monday
3 | ENGLISH | Tuesday
4 | ENGLISH | Wednesday
5 | ENGLISH | Thursday
6 | ENGLISH | Friday
7 | ENGLISH | Saturday

##### 結果データ

日曜日
月曜日
火曜日
水曜日
Thursday
Friday
Saturday