Hitachi

Hitachi Advanced Data Binder コマンドリファレンス


17.9.1 入力データの論理エラーが発生したときの対処手順と対処方法

入力データの論理エラーが発生したときの対処手順(フロー)を「図17‒18 入力データの論理エラーが発生したときの対処手順」に示します。なお,この手順は,論理エラーデータファイルに論理エラーデータが出力されていることが前提となっています。

GZIP形式で圧縮した入力データファイルを使用している場合,入力データとは,伸長したデータを指しています。

図17‒18 入力データの論理エラーが発生したときの対処手順

[図データ]

各手順の詳細を説明します。

〈この項の構成〉

(1) 論理エラーデータファイルを退避する

論理エラーデータファイルを退避してください。

(2) 論理エラーデータに関するメッセージを確認する

KFAA50217-EKFAA50224-Eメッセージ,およびKFAA52100-Eメッセージが,論理エラーデータに関するメッセージです。これらのメッセージが出力されているかを確認してください。

(3) 論理エラーデータを修正する

論理エラーデータファイルは,次の3つの組み合わせによって出力パターンが異なります。

論理エラーデータファイルの出力パターンを次に示します。

それぞれの場合の対処方法を次に示します。

(a) 論理エラーが発生した行データがそのまま出力される場合

(1) 論理エラーデータファイルを退避する」で退避した論理エラーデータファイルを開いて,論理エラーデータを修正します。

論理エラーデータの出力行と,「(2) 論理エラーデータに関するメッセージを確認する」のメッセージの出力順が一致しています。出力されたメッセージを参照して,論理エラーデータファイル中のデータを直接修正してください。

出力されたメッセージの例

KFAA50217-E  The input data length is invalid.
             (input file = 1, row = 1, column = 2, element = 0)      ...1
 
KFAA50222-E  The input data contains an invalid empty string.
             (input file = 1, row = 2, column = 3)                   ...2
 
     :
[説明]
  1. KFAA50217-Eメッセージは,データ長に誤りがあるときに出力されるメッセージです。

    論理エラーが発生したデータの入力データファイル中の位置が「input file = 1 ,row = 1, column = 2」に表示されます。この例の場合,入力データパスファイル中の1番目(input file)に指定した入力データファイルの中の,1行目(row)の2カラム目(column)のデータに論理エラーが発生したことを示しています。

  2. KFAA50222-Eメッセージは,非ナル値制約の列のデータに空文字列がある場合に出力されるメッセージです。

論理エラーデータファイルの内容(行データがそのまま出力される場合)

[図データ]

(b) 処理対象表への格納対象となったデータだけが切り出される場合

論理エラーデータが,処理対象表への格納対象となったフィールドデータなのかどうかによって,対処方法が異なります。

  • 処理対象表への格納対象となったフィールドデータが論理エラーになった場合

    論理エラーデータファイルには,エラー対象のフィールドデータが出力されています。

    この場合,「(1) 論理エラーデータファイルを退避する」で退避した論理エラーデータファイルを開いて,論理エラーデータを修正します。

    論理エラーデータの出力行と,「(2) 論理エラーデータに関するメッセージを確認する」のメッセージの出力順が一致しています。出力されたメッセージを参照して,論理エラーデータファイル中のデータを直接修正してください。

  • 処理対象表への格納対象外となったフィールドデータが論理エラーになった場合

    論理エラーデータファイルには,エラー対象のフィールドデータが出力されません。

    この場合,「(2) 論理エラーデータに関するメッセージを確認する」で確認したメッセージを参照して,入力データファイルでエラーの要因を確認します。

    入力データファイルの該当する行データを確認した上で,論理エラーデータファイルに出力された内容に問題がなければ,論理エラーデータファイルを修正する必要はありません。論理エラーデータファイルに出力された内容に問題があれば,入力データファイルから該当する行データを取り出して,修正してください。

出力されるメッセージは,論理エラーが発生した行データがそのまま出力される場合と同じです。メッセージの例は,「(a) 論理エラーが発生した行データがそのまま出力される場合」を参照してください。

論理エラーデータファイルの内容(格納対象となったデータだけが切り出される場合)

[図データ]

メモ

格納対象となったデータだけが論理エラーデータファイルに切り出される場合,論理エラーデータファイルには,入力データファイルとフィールドデータの数が同じになるように区切り文字が切り出されます(このため,adbimportコマンドの再実行時には,オプションを変更しないで,修正後の論理エラーデータファイルを入力データファイルとして使用できます)。

ただし,処理対象表への格納対象外になったフィールドデータ番号の最大値+1番目以降の区切り文字は切り出されません。

(4) adbimportコマンドを再実行する

adbimportコマンドを再実行して,修正したデータをインポートします。修正したデータを格納したファイル(論理エラーデータファイル)を入力データファイルにして,adbimportコマンドを再実行してください。

論理エラーデータファイルを修正する必要がなかった場合は,出力された論理エラーデータファイルをそのまま入力データファイルにしてください。また,入力データファイルの行データを取り出して修正した場合は,取り出して修正した行データを格納したファイルを,入力データファイルにしてください。

重要

必ず追加モード(-dオプションを指定しない)でadbimportコマンドを実行してください。作成モードでadbimportコマンドを実行すると,インポート済みの正常データが削除されてしまいます。

-dオプション以外のオプションの指定は,基本的には変更しないでください。インポートオプションの指定も基本的には変更しないでください。