![]() 前へ |
![]() 次へ |
この項では、ファイルのエラー数に応じたエラーの対処方法について説明します。
データファイルにほとんどエラーがない場合は、次のように対処します。
順序演算子を使用してマッピングを作成します。
次のパラメータを使用して、マッピングを構成します。
ダイレクト・モード=選択しない
行= 1
エラー許可= 0
コードを生成し、 SQL*Loaderスクリプトを実行します。
データファイルにエラーがある場合は、最初のエラーが発生した時点でロードが停止します。
データファイルを修正し、次の構成値を使用して制御ファイルを再度実行します。
CONTINUE_LOAD = TRUE
SKIP =ロード済のレコード数
データファイルに少数のエラーがあると思われる場合は、次のように対処します。
seq_nextval列に基づいてマスター・レコードに主キー(PK)を作成します。
マスター表PKを参照するseq_currval列に基づいてディテール・レコードに外部キー(FK)を作成します。
この場合、エラーがあるマスター・レコードは、対応するすべてのディテール・レコードとともに拒否されます。次の手順に従って、これらのレコードを修復します。
マスター・レコードがない、失敗したディテール・レコードをすべて削除します。
不正なファイルのエラーを修正し、これらのレコードのみ再ロードします。
エラーが非常に少ない場合は、残りのレコードをロードし、正しい順序番号を使用して表を手動で更新することもできます。
ログ・ファイルでは、エラーで失敗したレコードを識別できます。これは、これらのエラーが整合性制約に違反しているためです。次に、エラーのあるログ・ファイル・レコードの例を示します。
Record 9: Rejected - Error on table "MASTER_T", column "C3". ORA-01722: invalid number Record 10: Rejected - Error on table "DETAIL1_T". ORA-02291: integrity constraint (SCOTT.FK_SEQ) violated - parent key not found Record 11: Rejected - Error on table "DETAIL1_T". ORA-02291: integrity constraint (SCOTT.FK_SEQ) violated - parent key not found Record 21: Rejected - Error on table "DETAIL2_T". ORA-02291: invalid number
データファイルに常に多数のエラーが存在する場合は、次のように対処します。
順序演算子を使用しないで、すべてのレコードをロードします。
レコードを独立した表にロードします。ダイレクト・モードでデータをロードする際には、次のパラメータを使用すると、データのロードを高速化できます。
行>1
エラー許可= MAX
拒否されたすべてのレコードを修正します。
順序演算子を使用してファイルを再度リロードします。