検索系SQL実行処理

オペレーション名

検索系SQL実行

機能概要

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

データモデル

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

プロパティ

変数の使用については、「変数」を参照してください。
基本設定
項目名 必須/省略可 変数の使用 説明 備考
名前 必須 使用不可 スクリプトキャンバス上での名前を入力します。  
入力データ 省略可 使用不可 スクリプトキャンバス上にあるコンポーネントを選択します。
  • [SQL文]にSQLパラメータを使用しない場合には[入力データ]を指定しません。
必須設定
項目名 必須/省略可 変数の使用 説明 備考
接続先 必須 使用不可 グローバルリソースを選択します。
  • [追加]:
    新規にグローバルリソースを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」画面にて、グローバルリソースの設定を編集することができます。
 
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の固有のデータ型です。
    • 内部データ型:
      DataSpider内部で使用しているデータ型です。
      詳細については、「内部データ型」を参照してください。
出力スキーマ定義 必須 - [SQL文]で指定したSQL文のスキーマ定義を表示します。
  • [出力スキーマ定義]で表示された列名がMapperの入力スキーマに表示されます。
出力スキーマ定義/列名 必須 使用不可 [SQL文]で指定した列名を表示します。  
出力スキーマ定義/型 必須 使用不可 [列名]の型を表示します。
  • 「<Native型> (<内部データ型>)」形式で表示されます。
    • Native型:
      各RDBMSの固有のデータ型です。
    • 内部データ型:
      DataSpider内部で使用しているデータ型です。
      詳細については、「内部データ型」を参照してください。
プロパティアクション
項目名 説明 備考
テーブルブラウザの起動 テーブルブラウザを起動します。
操作方法については、「テーブルブラウザ」を参照してください。
  • [接続先]が選択されている場合、有効になります。
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文]が指定されていない場合、実行することができません。
  • [SQL文]にスクリプト変数またはSQLパラメータが指定されている場合、それらに値を入力して実行することが可能です。
    • 値を入力しない場合、空文字で実行されます。
    • 入力した値はスクリプトの実行には影響しません。
  • [SQL文]にSQLパラメータが指定されている場合、実行することができません。
読み取り設定
項目名 必須/省略可 変数の使用 説明 備考
フェッチサイズ 省略可 使用可 JDBCフェッチサイズを指定します。
  • 入力できる値は「0〜2147483647」です。
  • 本プロパティで入力した値は、JDBCのsetFetchSize()メソッドの引数に指定されます。
  • 一般的に、フェッチサイズは一度にデータベースから取得する行数を設定しますが、データベースや使用するJDBCドライバによって動作が異なる場合があります。
  • 省略した場合、または数値以外を入力した場合は、JDBCドライバのフェッチサイズを指定しない場合の動作にしたがいます。
  • 以下のアダプタには本プロパティはありません。
    • Accessアダプタ
    • ODBCアダプタ
    • SQL Serverアダプタ
    • Amazon RDS for SQL Serverアダプタ
    • Azure SQL Databaseアダプタ
クエリタイムアウトを有効にする 必須 使用不可 クエリタイムアウトを有効にするかどうかを選択します。
  • [チェックあり]:
    クエリタイムアウトを設定します。
  • [チェックなし]:(デフォルト)
    クエリタイムアウトを設定しません。
  • [チェックなし]とした場合、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」
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。
error_message エラー発生時、発生したエラーのメッセージが格納されます。
  • デフォルト値はnullです。
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。
error_trace エラー発生時、発生したエラーのトレース情報が格納されます。
  • デフォルト値はnullです。
  • DataSpider Servistaのバージョンや実行するクライアントアプリケーションにより、格納される内容が変わる可能性があります。

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それぞれにマッピングすることで値を設定します。

仕様制限

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

主な例外

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

注意事項

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