# テーブル読み取り処理

## オペレーション名

テーブル読み取り

## 機能概要

テーブルに格納されているデータを読み取ります。

## データモデル

本コンポーネントのデータモデルはテーブルモデル型です。

## プロパティ

変数の使用については、「変数」を参照してください。

##### 基本設定

項目名 | 必須/省略可 | 変数の使用 | 説明 | 備考
--- | --- | --- | --- | ---
名前 | 必須 | 使用不可 | スクリプトキャンバス上での名前を入力します。 |

##### 必須設定

項目名 | 必須/省略可 | 変数の使用 | 説明 | 備考
--- | --- | --- | --- | ---
接続先 | 必須 | 使用不可 | グローバルリソースを選択します。 [追加]: 新規にグローバルリソースを追加します。 [一覧の編集]: 「リソース一覧の編集」画面にて、グローバルリソースの設定を編集することができます。 |
テーブル名 | 必須 | 使用可 | 読み取るテーブルの名前を選択または入力します。 | グローバルリソースの一覧設定で指定した制限数のテーブルが表示されます。 データベース上のスキーマ名やテーブル名に「.」が含まれる場合、スキーマ名とテーブル名を引用符で囲むと正しく扱うことができます。 たとえば引用符が「"」の場合、スキーマ名が「A.B」で、テーブル名が「C.D」とすると、正しい引用符の囲み方は「"A.B"."C.D"」となります。
テーブル名を引用符で囲う | 省略可 | 使用不可 | 指定したテーブル名を引用符で囲うかどうかを選択します。 [チェックあり]: [テーブル名]に表示されているテーブル名を引用符で囲います。 [チェックなし]:(デフォルト) [テーブル名]に表示されているテーブル名を引用符で囲いません。 スペースなどの文字がテーブル名に含まれていた場合には、テーブル名を引用符で囲う必要があります。 引用符で囲う必要がある文字については、各データベースベンダーに問い合わせてください。 | 各データベースアダプタで設定されている引用符は以下の通りです。 Oracle、DB2、PostgreSQL:「""」(二重引用符) Access、SQL Server:「[]」(半角大括弧) JDBCアダプタ・ODBCアダプタ・Thunderbus DBエージェントアダプタには本プロパティはありません。 実行時には[テーブル名]に入力されたテーブル名をそのまま使用します。 [テーブル名]に入力されたテーブル名が引用符で囲われていた場合には、実行時にも引用符で囲まれたテーブル名でクエリーを発行します。 [テーブル名]に入力されたテーブル名が引用符で囲まれていない場合には、実行時に本プロパティの有効/無効を確認のうえ、本プロパティが有効であれば引用符で囲まれたテーブル名でクエリーを発行します。 [テーブル名]に環境変数を設定した場合、本プロパティの有効/無効を切り替えた際に値が展開されます。
スキーマ定義 | 必須 | - | [テーブル名]で指定したテーブルのスキーマ定義を表示します。 | [スキーマ定義]で表示された列の中で、[読み取り対象]にチェックを入れた列名がMapperのスキーマに表示されます。 以下の場合はスキーマ定義を表示することはできません。 指定したテーブルに読み取り権限がない場合 指定したテーブルが存在しない場合 [テーブル名]に変数が指定されている場合 [テーブル名]が入力されていない場合 [テーブル名]でエラーが発生している場合
スキーマ定義/読み取り対象 | 省略可 | 使用不可 | [テーブル名]で指定したテーブルの各列を、読み取り対象に含めるかどうかを選択します。 [チェックあり]:(デフォルト) 読み取り対象に含めます。 [チェックなし]: 読み取り対象に含めません。 | チェックを入れた列の列名がMapperのスキーマに表示されます。 ヘッダに表示されたチェックボックスを押下することで、一括操作を行うことができます。 1つ以上の列にチェックが入っている必要があります。
スキーマ定義/列名 | 必須 | 使用不可 | [テーブル名]で指定したテーブルの列名を表示します。 |
スキーマ定義/型 | 必須 | 使用不可 | [列名]の型を表示します。 | 「<Native型> (<内部データ型>)」形式で表示されます。 Native型: 各RDBMSの固有のデータ型です。 内部データ型: DataAnyware 2.0内部で使用しているデータ型です。 詳細については、「内部データ型」を参照してください。

###### プロパティアクション

項目名 | 説明 | 備考
--- | --- | ---
テーブル一覧の取得 | データベース上のテーブル名を取得して、[テーブル名]に設定します。 | [接続先]が選択されている場合、有効になります。 本プロパティはThunderbus DBエージェントアダプタのみで表示されます。
テーブルブラウザの起動 | テーブルブラウザを起動します。 操作方法については、「テーブルブラウザ」を参照してください。 | [接続先]が選択されている場合、有効になります。 Thunderbus DBエージェントアダプタでのみ、[テーブル一覧の取得]が成功した場合、有効になります。 [テーブル名]で指定したテーブルが初期表示されます。
抽出テスト | 指定したテーブルに対してSELECT文を発行します。結果として取得した件数が表示されます。 | 以下の場合には実行することができません。 指定したテーブルに読み取り権限がない場合 指定したテーブルが存在しない場合 [テーブル名]に変数が指定されている場合 [テーブル名]が入力されていない場合 [テーブル名]でエラーが発生している場合
スキーマ定義の更新 | [テーブル名]で指定したテーブルのスキーマ定義を更新します。 | 以下の場合には実行することができません。 指定したテーブルが存在しない場合 [テーブル名]に変数が指定されている場合 [テーブル名]が入力されていない場合 [テーブル名]でエラーが発生している場合

##### 読み取り設定

項目名 | 必須/省略可 | 変数の使用 | 説明 | 備考
--- | --- | --- | --- | ---
フェッチサイズ | 省略可 | 使用可 | JDBCフェッチサイズを指定します。 | 入力できる値は「0〜2147483647」です。 本プロパティで入力した値は、JDBCのsetFetchSize()メソッドの引数に指定されます。 一般的に、フェッチサイズは一度にデータベースから取得する行数を設定しますが、データベースや使用するJDBCドライバによって動作が異なる場合があります。 省略した場合、または数値以外を入力した場合は、JDBCドライバのフェッチサイズを指定しない場合の動作にしたがいます。 以下のアダプタには本プロパティはありません。 Accessアダプタ ODBCアダプタ SQL Serverアダプタ
クエリタイムアウトを有効にする | 必須 | 使用不可 | クエリタイムアウトを有効にするかどうかを選択します。 [チェックあり]: クエリタイムアウトを設定します。 [チェックなし]:(デフォルト) クエリタイムアウトを設定しません。 | [チェックなし]とした場合、JDBCドライバのクエリタイムアウトを指定しない場合の動作にしたがいます。 以下のアダプタには本プロパティはありません。 Accessアダプタ
クエリタイムアウト(秒) | 必須 | 使用可 | クエリタイムアウトを設定します。 | [クエリタイムアウトを有効にする]を[チェックあり]とした場合、有効になります。 入力できる値は「0〜2147483647」です。 本プロパティで入力した値は、JDBCのsetQueryTimeout()メソッドの引数に指定されます。 一般的に、クエリタイムアウトは実行を待つ秒数を設定しますが、データベースや使用するJDBCドライバによって動作が異なる場合があります。 以下のアダプタには本プロパティはありません。 Accessアダプタ

##### データ処理方式

項目名 | 必須/省略可 | 変数の使用 | 説明 | 備考
--- | --- | --- | --- | ---
データ処理方式 | 必須 | 使用不可 | データ処理方式を選択します。 [スクリプトの設定を使用する]:(デフォルト) スクリプトプロパティの大容量データ処理の設定をアダプタに使用します。 [大容量データ処理を行わない]: 大容量データ処理を行いません。 [大容量データ処理を行う]: 大容量データ処理を行います。 |

##### コメント

項目名 | 必須/省略可 | 変数の使用 | 説明 | 備考
--- | --- | --- | --- | ---
コメント | 省略可 | 使用不可 | このアダプタの簡単な説明を記述することができます。 説明を記述すると、仕様書に反映させることができます。 |

## スキーマ

### 入力スキーマ

ありません。

### 出力スキーマ

[スキーマ定義]の設定により、カラム数が異なります。
スキーマ構造については、「テーブルモデル型のスキーマ」を参照してください。

### Mapperでのスキーマ読み込み

スキーマは自動で読み込まれます。
詳細については、「スキーマ編集」を参照してください。

## 大容量データ処理

大容量データ処理に対応しています。

## PSPでの使用について

PSPで使用できます。
PSPについては、「パラレルストリーミング処理」を参照してください。

## 使用できるコンポーネント変数

コンポーネント変数名 | 説明 | 備考
--- | --- | ---
count | 読み取ったデータの件数が格納されます。 | デフォルト値はnullです。 PSPでは値が格納されません。
error_code | エラー(SQLException)発生時、発生したエラーに対応するエラーコードが格納されます。 | デフォルト値はnullです。 正常終了時は「0」が格納されます。 エラーコードは各ドライバの仕様に基づいています。
message_category | エラー発生時、発生したエラーに対応するメッセージコードのカテゴリが格納されます。 | デフォルト値はnullです。
message_code | エラー発生時、発生したエラーに対応するメッセージコードのコードが格納されます。 | デフォルト値はnullです。
message_level | エラー発生時、発生したエラーに対応するメッセージコードの重要度が格納されます。 | デフォルト値はnullです。
error_type | エラー発生時、発生したエラーの種類が格納されます。 | デフォルト値はnullです。 エラーの種類は、以下のような形式となります。 例:「java.io.FileNotFoundException」 CustomerVision DataAnyware 2.0のバージョンにより、格納される内容が変わる可能性があります。
error_message | エラー発生時、発生したエラーのメッセージが格納されます。 | デフォルト値はnullです。 CustomerVision DataAnyware 2.0のバージョンにより、格納される内容が変わる可能性があります。
error_trace | エラー発生時、発生したエラーのトレース情報が格納されます。 | デフォルト値はnullです。 CustomerVision DataAnyware 2.0のバージョンや実行するクライアントアプリケーションにより、格納される内容が変わる可能性があります。

## 仕様制限

- グローバルリソースの一覧設定で、テーブル一覧の表示数を制限していない場合や大きな数を指定している場合、データベースのテーブル数によってはプロパティ設定ダイアログを開くのに時間がかかることがあります。

各データベースアダプタ固有の仕様制限については、「データベースアダプタの制限事項」を参照してください。

## 主な例外

例外名 | 原因 | 対策
--- | --- | ---
ResourceNotFoundException リソース定義が見つかりませんでした。名前:[] | [接続先]が指定されていません。 | [接続先]を指定してください。
ResourceNotFoundException リソース定義が見つかりませんでした。名前:[<グローバルリソース名>] | [接続先]で選択されたリソース定義が見つかりません。 | [接続先]で指定したグローバルリソースを確認してください。
InvalidPropertyConfigurationException | [テーブル名]が未設定です。 | [テーブル名]を指定してください。
InvalidPropertyConfigurationException 読み取り対象カラムが選択されていません。 | [スキーマ定義]の[読み取り対象]が選択されていません。 | [スキーマ定義]の[読み取り対象]を1つ以上選択してください。
java.sql.SQLException | データベースアクセスエラーまたはそのほかのエラーが発生しています。 | SQLExceptionのメッセージを確認してください。SQLExceptionのメッセージは各ドライバの仕様に基づいています。SQLExceptionのメッセージにはエラーの原因が出力されている場合があります。 メッセージの詳細については、各データベースベンダーに問い合わせてください。

## 注意事項

- byte[]型として扱うスキーマは、バイナリ形式として出力されます。

各データベースアダプタ固有の注意事項については、「データベースアダプタの制限事項」を参照してください。