RDBデータの更新
RDBのテーブルを更新するには、RDBPutコンポーネントを使用します。更新用のデータを、RDBPutコンポーネントのフィールド定義にマッピングして設定します。そのため、RDBPutコンポーネントに接続可能なコンポーネントは、Mapperのみとなります。
XMLデータからデータベースへ書き込む
1. フローウィンドウを表示し、FileGet、Mapperコンポーネントに続き、「データベース」タブから RDBPutコンポーネント(「RDBへデータを挿入、またはデータの更新・削除をします」)を配置する
2. 「ストリーム定義をRecordに変換します」というダイアログが表示されたら「はい」をクリックして閉じ、その他のコンポーネントも配置、接続する
3. FileGetコンポーネントアイコンを選択し、「ファイルパス」プロパティに、書き込み用のデータを含むXMLファイルへのパスを指定する
4. 「フィールド定義をインポートしますか?」という確認のダイアログが表示されたら、「はい」をクリックし、インポートされたフィールド定義を確認する
5. RDBPutコンポーネントを選択し、「コネクション名」プロパティで使用するコネクションを指定し、「実行する処理」プロパティが「Insert」であることを確認する
6. RDBPutコンポーネントをダブルクリックする
7. 「テーブルとフィールドの設定」ダイアログが表示されるので、更新対象のテーブルを選択し、項目にチェックマークが付いていることを確認して、「OK」をクリックする
8. RDBPutコンポーネントのインスペクタの「入力」タブに、フィールド名が反映されていることを確認する
9. Mapperコンポーネントのフィールド定義も自動的に設定されていることを確認する
10. データのマッピングを行う
フローを実行すると、フローの出力結果は何も表示されませんが、データベースにデータが追加されます。
HINT
データの更新を確認するには
データベースへのデータの更新は、RDBGetコンポーネントのSQLビルダーでSELECTテストをすることで確認できます。

CSVファイルからデータベースへ書き込む
1. RDBPutコンポーネントを含むRDBデータ書き込みのフローを作成する
2. FileGetコンポーネントアイコンを選択し、「ファイルパス」プロパティに、書き込み用のデータを含むCSVファイルへのパスを指定する
3. 読み込むデータに合わせて、FileGetコンポーネントのストリーム定義を設定する
HINT
手順3の FileGetコンポーネントのストリーム定義では、 ストリーム型と「読み込み開始行」などのストリームプロパティ、およびフィールド定義をデータに合わせて設定します。
4. RDBPutコンポーネントで「コネクション名」プロパティを設定し、「実行する処理」プロパティが「Insert」であることを確認して、ダブルクリックする
5. 「テーブルとフィールドの設定」ダイアログが表示されるので、更新対象のテーブルを選択する
6. 更新対象のフィールド名にチェックマークが付いていることを確認し、「OK」をクリックする
7. RDBPutコンポーネントのインスペクタの「入力」タブに、フィールド名が反映されていることを確認する
8. Mapperコンポーネントのフィールド定義も自動的に設定されていることを確認する
HINT
「キーにする」項目(キー定義)について
「実行する処理」プロパティが「Insert」の場合は、通常キー定義を必要としませんが、「Insert」以外の場合は、インスペクタの「入力」タブで必ずキー定義を行います。これは、対象レコードを特定するためのキーであり、データベースの主キーとは異なります。「Insert」以外を指定してキー定義を行っていない場合は、コンパイルエラーになります。
9. データのマッピングを行う
HINT
「実行する処理」プロパティ
RDBPutコンポーネントの「実行する処理」プロパティでは、以下のデータベース更新処理を選択できます。
値 |
説明 |
Insert |
フィールド定義にあるすべてのフィールドを、テーブルにレコードとして挿入します。通常キー定義は使用しませんが、DBMSがOracleで、かつBLOB または CLOB 列がフィールドに含まれる場合はキー定義が必要です。 |
Update |
「キーにする」項目で「はい」を指定したフィールドにマッチするレコードを、キー以外のフィールドを用いて更新します。キーとするフィールドを更新することはできません。 |
Insert/Update |
フィールド定義を用いてInsertを実行し、キー違反エラーが発生した場合はUpdateを実行します。PostgreSQLではこのモードは使用できません。 |
Update/Insert |
フィールド定義を用いてUpdateを実行し、更新件数が0件の場合は Insert を実行します。 |
Delete |
「キーにする」項目で「はい」を指定したフィールドにマッチするレコードを削除します。キーにするフィールド以外は使用しません。 |
キー違反エラーとは、PRIMARY Key制約やUNIQUE Key制約に違反した場合に発生するエラーです。