書き込み(更新/挿入)処理

オペレーション名

書き込み(更新/挿入)

機能概要

入力データをDr.Sumのテーブルに書き込みます。
CSVファイルやデータベースの構造情報に基づき、テーブルを作成することもできます。

データモデル

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

プロパティ

変数の使用については、「変数」を参照してください。
基本設定
項目名 必須/省略可 変数の使用 説明 備考
名前 必須 使用不可 スクリプトキャンバス上での名前を入力します。  
入力データ 必須 使用不可 スクリプトキャンバス上にあるコンポーネントを選択します。  
必須設定
項目名 必須/省略可 変数の使用 説明 備考
接続先 必須 使用不可 グローバルリソースを選択します。
グローバルリソースの設定方法については、「グローバルリソースのプロパティ」を参照してください。
  • [追加]:
    新規にグローバルリソースを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」画面にて、グローバルリソースの設定を編集することができます。
 
テーブル名 必須 使用可 書き込むテーブルの名前を選択または入力します。
  • ビュー、マルチビュー、リンクテーブルは表示されません。
キーの値と一致する行は更新 省略可 使用不可 キーとして指定した列の値が一致する行の更新を行うか、全件挿入を行うかを選択します。
  • [チェックあり]:
    キー値が一致する行は更新します。キー値が一致しない行は挿入します。
  • [チェックなし]:(デフォルト)
    全件挿入します。
  • [キーの値と一致する行は更新]にチェックを入れ、[スキーマ定義][キー]が指定されていない場合には、エラーが発生します。
  • 詳細については、「キーの値と一致する行は更新について」を参照してください。
レコードを削除 省略可 使用不可 データを書き込む前にレコードを削除するかどうかを選択します。
  • [チェックあり]:
    レコードを削除します。
  • [チェックなし]:(デフォルト)
    レコードを削除しません。
  • [テーブル名]で指定したテーブルが存在しない場合無視します。
テーブルを作成 省略可 使用不可 [テーブル名]に指定した名前で[スキーマ定義]のテーブル構造情報をもとにテーブルを作成するかどうかを選択します。
  • [チェックあり]:
    テーブルを作成します。
  • [チェックなし]:(デフォルト)
    テーブルを作成しません。
  • 再作成されたテーブルは、権限や複合キーなど、テーブルに付加されている情報は引き継がれません。
  • [テーブル名]でディストリビュータを選択した場合、無効になります。
テーブルが存在する場合は再作成 省略可 使用不可 [テーブル名]と同名のテーブルが存在する場合、そのテーブルの再作成を行うかどうかを選択します。
  • [チェックあり]:
    同名のテーブルが存在する場合、ドロップして再作成します。
  • [チェックなし]:(デフォルト)
    同名のテーブルが存在する場合、再作成しません。
  • [テーブルを作成]にチェックを入れた場合、有効になります。
  • [テーブル名]でディストリビュータを選択した場合、無効になります。
スキーマ定義 必須 - データベースのスキーマ定義を指定します。
  • [スキーマ定義]で表示された列の中で、[書き込み対象]または[キー]にチェックを入れた列名がMapperのスキーマに表示されます。
  • 以下の場合はスキーマ定義を表示することはできません。
    • 指定したテーブルに読み取り権限がない場合
    • 指定したテーブルが存在しない場合
    • [テーブル名]に変数が指定されている場合
    • [テーブル名]が入力されていない場合
    • [テーブル名]でエラーが発生している場合
  • キーについては、「キーの値と一致する行は更新について」を参照してください。
スキーマ定義/書き込み対象 省略可 使用不可 [テーブル名]で指定したテーブルの各列を、書き込み対象カラムに含めるかどうかを選択します。
  • [チェックあり]:(デフォルト)
    書き込み対象に含めます。
  • [チェックなし]:
    書き込み対象に含めません。
  • チェックを入れた列の列名がMapperのスキーマに表示されます。
  • ヘッダに表示されたチェックボックスを押下することで、一括操作を行うことができます。
  • 1つ以上の列にチェックが入っている必要があります。
  • 詳細については、「書き込み対象カラムについて」を参照してください。
スキーマ定義/キー 必須 使用不可 更新条件に含めるキーを選択します。
  • [チェックあり]:
    更新条件に含めます。
  • [チェックなし]:(デフォルト)
    更新条件に含めません。
  • チェックを入れた列の列名がMapperのスキーマに表示されます。
  • [キーの値と一致する行は更新]にチェックを入れ、[スキーマ定義][キー]が指定されていない場合には、エラーが発生します。
  • キーについては、「キーの値と一致する行は更新について」を参照してください。
スキーマ定義/列名 必須 使用不可 [テーブル名]で指定したテーブルの列名を表示します。  
スキーマ定義/型 必須 使用不可 [列名]の型を表示します。
  • 「<Native型> (<内部データ型>)」形式で表示されます。
    • Native型:
      Dr.Sumの固有のデータ型です。
    • 内部データ型:
      DataSpider内部で使用しているデータ型です。
      詳細については、こちらを参照してください。
スキーマ定義/Null許容 必須 使用不可 テーブル作成時に指定した列に対してNullを許容するかどうかを選択します。
  • [テーブルを作成]にチェックを入れた場合、有効になります。
スキーマ定義/有効桁数 必須 使用可 テーブル作成時に指定した列に対して設定する有効桁数を入力します。
  • デフォルト値は「0」です。
  • [テーブルを作成]にチェックを入れた場合、有効になります。
スキーマ定義/小数点部桁数 必須 使用可 テーブル作成時に指定した列に対して設定する小数点部桁数を入力します。
  • デフォルト値は「0」です。
  • [テーブルを作成]にチェックを入れた場合、有効になります。
プロパティアクション
項目名 説明 備考
テーブル情報の表示 [接続先]で指定したデータベースに含まれるテーブルの構造、内容、関連情報を表示します。
テーブル情報については、「テーブル情報」を参照してください。
  • [接続先]が選択されている場合、有効になります。
  • ビュー・マルチビュー・リンクテーブルは選択できません。
  • ディストリビュータを選択した場合、テーブルの内容は表示されません。
  • [テーブル名]で指定したテーブルが初期表示されます。
スキーマ定義の更新 [テーブル名]で指定したテーブルのスキーマ定義を更新します。
  • 以下の場合には実行することができません。
    • 指定したテーブルが存在しない場合
    • [テーブル名]に変数が指定されている場合
    • [テーブル名]が入力されていない場合
    • [テーブル名]でエラーが発生している場合
テーブル構造情報の取得 ほかのデータベースまたはCSVファイルからテーブル構造情報を取得し、スキーマ定義として設定します。
詳細については、「テーブル構造情報の取得について」を参照してください。
  • CSVファイルはWindows-31Jでエンコードされているファイルのみサポートしています。
  • ほかのデータベースからテーブル構造情報を取得する場合は、対象データベースに接続するためのグローバルリソースが作成されている必要があります。
  • 以下のアダプタのグローバルリソースを指定できます。

    アダプタの種類
    Accessアダプタ
    DB2アダプタ
    MySQLアダプタ
    Oracleアダプタ
    PostgreSQLアダプタ
    SQL Serverアダプタ
    JDBCアダプタ
    ODBCアダプタ
    Dr.Sumアダプタ
    Amazon Aurora for MySQLアダプタ
    Amazon RDS for MySQLアダプタ
    Amazon RDS for Oracleアダプタ
    Amazon RDS for PostgreSQLアダプタ
    Amazon RDS for SQL Serverアダプタ
    Azure SQL Databaseアダプタ

  • グローバルリソースの表示順序は不定です。
  • [テーブル名]でディストリビュータを選択した場合、無効になります。
コメント
項目名 必須/省略可 変数の使用 説明 備考
コメント 省略可 使用不可 このアダプタの簡単な説明を記述することができます。
説明を記述すると、仕様書に反映させることができます。
 

スキーマ

入力スキーマ

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

出力スキーマ

ありません。

Mapperでのスキーマ読み込み

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

トランザクション

トランザクションをサポートしています。

PSPでの使用について

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

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

コンポーネント変数名 説明 備考
count 書き込んだデータの件数が格納されます。
  • デフォルト値はnullです。
  • 「insert_count」と「update_count」の合計です。
insert_count 入力データのうち、挿入対象となるデータの件数が格納されます。
  • デフォルト値はnullです。
update_count 入力データのうち、更新対象となるデータの件数が格納されます。
  • デフォルト値はnullです。
update_record_count 書き込んだデータのうち、更新されたデータの件数が格納されます。
  • デフォルト値はnullです。
error_code エラー発生時、Dr.Sumのエラーステータスコードが10進数の値で格納されます。
  • デフォルト値はnullです。
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。
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のバージョンや実行するクライアントアプリケーションにより、格納される内容が変わる可能性があります。

キーの値と一致する行は更新について

書き込み(更新/挿入)処理で更新を行う場合には、[キーの値と一致する行は更新]にチェックを入れ、キーとなる[列名]を選択します。 キーとして選択した列が一致した行を更新し、一致しない行を挿入します。キーとして選択した列名がUPDATE文のWHERE句に指定されます。

Insert/Update

複数のキーを更新条件として指定できます。キーとして選択したすべての列が一致する行を更新します。

書き込み対象カラムについて

挿入時の動作

挿入時、[スキーマ定義/書き込み対象]にチェックを入れたカラムがINSERT文の挿入対象のカラムとして使用されます。
書き込み対象に含めないカラムにはnullが挿入されます。
NOT NULL制約のあるカラムを書き込み対象に含めない場合、実行時にエラーとなります。

例:

更新時の動作

更新時、[スキーマ定義/書き込み対象]にチェックを入れたカラムがUPDATE文の更新対象のカラムとして使用されます。
書き込み対象に含めないカラムの値は、更新は行われずにそのまま維持されます。

例:

テーブル構造情報の取得について

CSVファイルから列名を取得、またはほかのデータベースからテーブル構造方法を取得して、スキーマ定義に設定することができます。

データベースから構造情報の読み取り

データベースのグローバルリソースを使用したテーブル構造を読み取る方法は、以下の通りです。
  1. プロパティ設定ダイアログでプロパティアクション[テーブル構造の取得]を押下すると、[テーブル構造情報]画面が起動します。



  2. [データベースから構造情報を読み取り]を選択して[次へ]ボタンを押下します。

  3. [グローバルリソース名]のリストから、すでに作成されているデータベースのグローバルリソースを選択します。


  4. 構造情報を読み取るテーブルを、[テーブル名]のリストから選択または直接入力します。
    [テーブル名]のリストには、グローバルリソースの一覧設定で指定した制限数のテーブルが表示されます。
    [テーブル名]に環境変数などの変数を使用することはできません。

  5. 有効なテーブルを指定すると、テーブルプロパティにそのテーブルの構造情報が表示されます。


  6. [完了]ボタンを押下すると[スキーマ定義]にテーブル構造情報が設定されます。スキーマ定義は編集可能です。

CSVファイルから列名の読み取り

CSVファイルからスキーマ定義の列名を読み取る方法は、以下の通りです。
  1. プロパティ設定ダイアログで[テーブル構造の取得]を押下すると、[テーブル構造情報]ダイアログが起動します。


  2. [CSVファイルから列名の読み取り]を選択して[次へ]を押下します。

  3. 列名を読み取るCSVファイルを指定します。CSVファイルの内容は以下の通りです。

    品番,製品名,製品名漢字,価格

  4. [完了]ボタンを押下すると[スキーマ定義]にテーブル構造情報が設定されます。
    デフォルト値として、[型]には[VARCHAR]が設定され、[NULL許容]は有効に設定されます。[キー][有効桁数][小数点部桁数]は設定されません。
    スキーマ定義は編集可能です。

仕様制限

各アダプタ固有の仕様制限については、以下のページを参照してください。

主な例外

例外名 原因 対策
ResourceNotFoundException
リソース定義が見つかりませんでした。名前:[]
[接続先]が指定されていません。 [接続先]を指定してください。
ResourceNotFoundException
リソース定義が見つかりませんでした。名前:[<グローバルリソース名>]
[接続先]で選択されたリソース定義が見つかりません。 [接続先]で指定したグローバルリソースを確認してください。
InvalidPropertyConfigurationException [テーブル名]が未設定です。 [テーブル名]を指定してください。
InvalidPropertyConfigurationException
書き込み対象カラムが選択されていません。
[スキーマ定義][書き込み対象]が選択されていません。 [スキーマ定義][書き込み対象]を1つ以上選択してください。

注意事項

各アダプタ固有の注意事項については、以下のページを参照してください。

処理イメージ

CSVファイルの内容を読み取り、書き込み(更新/挿入)処理でテーブルに書き込みます。
  1. 書き込み(更新/挿入)処理のプロパティ設定は以下の通りです。
    PRICEテーブルのidカラムをキーに、priceカラムのデータを更新します。



  2. 書き込み対象のPRICEテーブル内のデータは以下の通りです。

    id product price
    1 Prototype 1000
    2 1stType 2000

  3. CSVファイルの内容は以下の通りです。

    2 ,2500

  4. CSV読み取り処理でCSVファイルの内容を読み取り、書き込み(更新/挿入)処理で書き込んだ結果、PRICEテーブルのデータは以下のようになります。

    id product price 処理結果
    1 Prototype 1000  
    2 1stType 2500 idが一致したため、更新