検索系SQL実行処理

オペレーション名

検索系SQL実行

機能概要

SQL文を用いてデータを読み取ります。

データモデル

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

チュートリアル

MySQLデータベースへのコネクションの作成方法については、以下のチュートリアルを参照してください。

プロパティ

= 備考 =

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

基本設定

項目名

必須/省略可

変数の使用

説明

備考

名前

必須

使用不可

スクリプトキャンバス上での名前を入力します。

 

入力データ

省略可

使用不可

スクリプトキャンバス上にあるコンポーネントを選択します。

  • [SQL文]にSQLパラメータを使用しない場合には[入力データ]を指定しません。

必須設定

項目名

必須/省略可

変数の使用

説明

備考

接続先

必須

使用不可

コネクションリソースを選択します。

[追加]

新規にコネクションリソースを追加します。

[一覧の編集]

> HULFT INTEGRATE > コネクションで、コネクションリソースの設定を編集することができます。

 

SQL文

必須

使用可

データベースへ発行するSQL文を入力します。

  • [接続先]が未設定または不正な場合、無効になります。

  • SQLパラメータ」を使用できます。

  • [SQL文]にSQLパラメータが含まれていない場合には、java.sql.StatementクラスのexecuteQuery()メソッドを実行し、SQLパラメータが含まれている場合には、java.sql.PreparedStatementクラスのexecuteQuery()メソッドを実行しています。

  • java.sql.ResultSetクラスを返すSELECT文を指定できます。

  • SELECT文以外で実行できるSQL文については、データベースベンダーに問い合わせてください。

  • 入力値のサイズ上限は約60,000バイトです。ただし、接続先データベースや使用するJDBCドライバにサイズの制限がある場合、それらの制限が上限値となります。

入力スキーマ定義

省略可

-

[SQL文]で指定したSQLパラメータを設定します。

  • [SQL文]にSQLパラメータを使用しない場合には表示されません。

  • [入力スキーマ定義]で表示された列名がMapperの出力スキーマに表示されます。

入力スキーマ定義/列名

必須

使用不可

SQLパラメータの名前を設定します。

  • [SQL文]にSQLパラメータを使用しない場合には表示されません。

入力スキーマ定義/型

必須

使用不可

SQLパラメータの型を選択します。

  • [SQL文]にSQLパラメータを使用しない場合には表示されません。

  • 「<Native型> (<内部データ型>)」形式で表示されます。

    Native型

    各RDBMSの固有のデータ型です。

    内部データ型

    内部で使用しているデータ型です。

    詳細については、「内部データ型」を参照してください。

出力スキーマ定義

必須

-

[SQL文]で指定したSQL文のスキーマ定義を表示します。

  • [出力スキーマ定義]で表示された列名がMapperの入力スキーマに表示されます。

出力スキーマ定義/列名

必須

使用不可

[SQL文]で指定した列名を表示します。

 

出力スキーマ定義/型

必須

使用不可

[列名]の型を表示します。

「<Native型> (<内部データ型>)」形式で表示されます。

Native型

各RDBMSの固有のデータ型です。

内部データ型

内部で使用しているデータ型です。

詳細については、「内部データ型」を参照してください。

プロパティアクション

項目名

説明

備考

テーブルブラウザの起動

テーブルブラウザを起動します。

操作方法については、「テーブルブラウザ」を参照してください。

  • [接続先]が選択されている場合、有効になります。

SQLウィザードの起動

SQLウィザードを起動します。

操作方法については、「SQLウィザード(検索系)」を参照してください。

  • SQLウィザードでは、SQL文の新規作成、およびSQLウィザードで作成したSQL文の編集が可能です。

    • SQLウィザードを使用せずに手動で[SQL文]を指定した場合、指定されたSQL文をSQLウィザードで編集することはできません。

    • SQLウィザードを使用して作成した[SQL文]が手動で変更されている場合、変更されたSQL文をSQLウィザードで再編集することはできません。新規作成するか、SQLウィザードで作成したSQL文を編集するかをダイアログで選択して起動してください。

抽出テスト

指定したSQL文を実行します。結果として取得した件数が表示されます。

  • [SQL文]が指定されていない場合、実行することができません。

  • [SQL文]にSQLパラメータが指定されている場合、実行することができません。

SQL文を実行して出力スキーマを設定

[SQL文]で指定したSQL文から出力スキーマ情報を取得し[出力スキーマ定義]に設定します。

  • [SQL文]が指定されていない場合、実行することができません。

  • [SQL文]にSQLパラメータが指定されている場合、実行することができません。

読み取り設定

項目名

必須/省略可

変数の使用

説明

備考

フェッチサイズ

省略可

使用可

JDBCフェッチサイズを指定します。

  • 入力できる値は「0~2147483647」です。

  • 本プロパティで入力した値は、JDBCのsetFetchSize()メソッドの引数に指定されます。

  • 一般的に、フェッチサイズは一度にデータベースから取得する行数を設定しますが、データベースや使用するJDBCドライバによって動作が異なる場合があります。

  • 省略した場合、または数値以外を入力した場合は、JDBCドライバのフェッチサイズを指定しない場合の動作にしたがいます。

注意

以下のコネクターには本プロパティはありません。

  • SQL Serverコネクター

  • Amazon RDS for SQL Serverコネクター

  • Azure SQL Databaseコネクター

クエリタイムアウトを有効にする

必須

使用不可

クエリタイムアウトを有効にするかどうかを選択します。

[チェックあり]

クエリタイムアウトを設定します。

[チェックなし]

(デフォルト)

クエリタイムアウトを設定しません。

  • [チェックなし]とした場合、JDBCドライバのクエリタイムアウトを指定しない場合の動作にしたがいます。

クエリタイムアウト(秒)

必須

使用可

クエリタイムアウトを設定します。

  • [クエリタイムアウトを有効にする][チェックあり]とした場合、有効になります。

  • 入力できる値は「0~2147483647」です。

  • 本プロパティで入力した値は、JDBCのsetQueryTimeout()メソッドの引数に指定されます。

  • 一般的に、クエリタイムアウトは実行を待つ秒数を設定しますが、データベースや使用するJDBCドライバによって動作が異なる場合があります。

データ処理方式

項目名

必須/省略可

変数の使用

説明

備考

データ処理方式

必須

使用不可

データ処理方式を選択します。

[スクリプトの設定を使用する]

(デフォルト)

スクリプトプロパティの大容量データ処理の設定をコネクターに使用します。

[大容量データ処理を行わない]

大容量データ処理を行いません。

[大容量データ処理を行う]

大容量データ処理を行います。

 

コメント

項目名

必須/省略可

変数の使用

説明

備考

コメント

省略可

使用不可

このコネクターの簡単な説明を記述することができます。

 

スキーマ

入力スキーマ

[入力スキーマ定義]の設定により、カラム数が異なります。

= 備考 =

スキーマ構造については、「テーブルモデル型 」を参照してください。

出力スキーマ

[出力スキーマ定義]の設定により、カラム数が異なります。

= 備考 =

スキーマ構造については、「テーブルモデル型 」を参照してください。

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」

error_message

エラー発生時、発生したエラーのメッセージが格納されます。

  • デフォルト値はnullです。

error_trace

エラー発生時、発生したエラーのトレース情報が格納されます。

  • デフォルト値はnullです。

SQLパラメータ

検索系SQL実行処理では、SQLパラメータを使用することができます。

プリコンパイルしたSQL文を使用したいときにはSQLパラメータを使用します。同一SQL文を複数回実行するときにプリコンパイルされたSQL文を使用するとパフォーマンスが向上します。

SQLパラメータの使用方法

SQLパラメータは「?{name}」と記述します。「name」は任意に指定できます。

SQLパラメータはMapperで値を設定します。

 

たとえば、SQL文に「select * from test_table where col1 = ?{col1} and col2 = ?{col2} and col3 = ?{col3}」と記述した場合、3つのSQLパラメータ(col1、col2、col3)が動的に変更できます。

この検索系SQL実行処理をMapperの出力先に設定すると、Mapperの出力スキーマにcol1、col2、col3が表示されます。Mapperでcol1、col2、col3それぞれにマッピングすることで値を設定します。

  • 文字列型をSQLパラメータに指定する場合にはシングルクォーテーションで囲いません。

注意

[SQL文]にSQLパラメータを使用しない場合にはSQL文はプリコンパイルされません。

プリコンパイルしたSQL文を使用する場合にはSQLパラメータを使用してください。