# DBテーブル形式の制限

(1) 日付タイプのデータ型へ出力する際の注意

Dタイプ（日付タイプ）を出力する際の標準フォーマットは「YYYY/MM/DD」になるため、データベースごとの日付、時刻タイプの項目と書式が異なる場合、正常に出力されません。その場合は、出力フォーマットで書式を指定してください。

以下にDB2の時刻を表すデータ型「TIME」に出力する場合の例を説明します。

図4.104 Dタイプ出力時の注意点

(2) 書き込み中の強制終了に関する制限

DBテーブルへの書き込み処理中に［中断］ボタンやKILLコマンドなどで強制終了した場合、タイミングによってはすでにコミットが完了している場合があります。

DBテーブルへの書き込み中は強制終了を行わないでください。

(3) SQLite3を使用したDB連携での注意

DBテーブル情報の接続先DBがSQLite3で、変換の入出力が同一のテーブル、かつ入出力に使用されるDBテーブル情報の「DB接続ID」が同一の場合、変換が終了しません。入出力でそれぞれ異なる接続IDを用意してください。

なお、変換が終了しなかった場合は、プロセスを強制終了してください。

(4) 空文字を変換する際の注意

データ加工情報設定画面の出力設定画面にて、「入力データサイズが0バイトの場合の扱い」で"NULL"を選択して空文字を変換する場合、出力先DBの項目でNULL値が許可されていないときは、DBテーブルへ書き込みができないため変換はエラーになります。

(5) DBクライアントの文字コード種とDBの文字コード種が異なる場合の注意

DBクライアントの文字コード種（Oracleの場合は環境変数「NLS_LANG」で設定）と、DB自身の文字コード種が異なる場合、DBクライアントのデータをDBへ登録する際に、自動で文字コードの変換が行われます。このとき、文字コードの変換によってデータサイズが変更されることで、桁あふれのエラーが発生することがあります。

以下に、DBクライアント側がSHIFT-JIS、DBがUTF-8の場合に、10バイトの入力データをDB（固定長、14バイト、Mタイプ）へ登録するときに桁あふれが発生する例を示します。なお、UTF-8の全角文字は3バイトを前提として記載します。

= 備考 =

UTF-8は1文字が複数バイトで表現されます。そのため、データベースの種類によっては1文字の文字サイズが異なる場合があります。

図4.105 DB登録時に桁あふれのエラーが発生する例

桁あふれを回避して正常に入力データをDBに登録するための方法として、以下の2つがあります。なお、以下の例では、DB本体側のテーブルを14バイトで定義しています。

DBの項目設定で「サイズ」を"10"バイトにする。

  図4.106 DBの項目設定で「サイズ」を10バイトにした例

DBの項目設定で「固定長/可変長」を"可変長"にする。

  図4.107 DBの項目設定で「固定長/可変長」を"可変長"にした例

(6) PostgreSQLを使用したDB連携での注意

PostgreSQLはトランザクション中にエラーが発生した場合、データがロールバックするため、「更新方法」に"SQL1に失敗した場合のみSQL2まで実行"における変換がSQL1に失敗するとロールバックされます。

DBテーブル情報の接続先DBがPostgreSQLの場合、以下の設定での変換動作は保証されません。

「入出力区分」

  : "出力"

「指定方法」

  : "SQL文指定"

「更新方法」

  : "SQL1に失敗した場合のみSQL2まで実行"