SQL*Loaderを実行すると、不良ファイルまたは拒否ファイルと呼ばれるファイルが生成されることがあります。これらのファイルには、書式エラーまたはOracleエラーが発生したためにロードを拒否されたレコードが格納されます。不良ファイルが作成されるように指定した場合は、次の規則に従って作成されます。
レコードが1つ以上拒否された場合、不良ファイルが作成され、拒否レコードがログに記録されます。
レコードが1つも拒否されない場合、不良ファイルは作成されません。
不良ファイルが作成される場合、同じ名前の既存のファイルは上書きされます。そのため、残しておきたいファイルが上書きされないようにする必要があります。
注意:
一部のシステムでは、同じ名前のファイルがすでに存在する場合でも、新しいバージョンのファイルが作成される場合があります。
不良ファイルの名前を指定する場合は、BADFILE
句を使用します。コマンドラインから不良ファイルを指定する場合は、「SQL*Loaderのコマンドライン・パラメータ」で説明しているBAD
パラメータを使用します。
コマンドラインから指定した不良ファイル名は、制御ファイル中の最初に記述されるINFILE
句に対して指定されたものとみなされます。この場合、前述の句の中で不良ファイル名が指定されていても、コマンドラインから指定した不良ファイル名が優先されます。
生成される不良ファイルのファイル形式やレコード形式は、データ・ファイルと同じです。したがって、データを修正した後そのまま再ロードすることができます。ストリーム・レコード形式のデータ・ファイルに関しては、データ・ファイルにあるレコード終了記号が不良ファイル内でも使用されます。
BADFILE
句の構文は次のとおりです。
BADFILE
句は、その後に不良ファイルのディレクトリ・パスまたはファイル名(あるいはその両方)が続くことを指定します。BADFILE
を指定した場合、ディレクトリ・パス、ファイル名またはこの両方を指定する必要があります。
directory
パラメータには、不良ファイルの書込み先となるディレクトリ・パスを指定します。
filename
パラメータには、使用するプラットフォームに有効なファイル名を指定します。ファイル名に空白やその他の句読点文字が含まれている場合は、一重引用符で囲む必要があります。不良ファイルの名前を指定しなかった場合は、デフォルトで、データ・ファイル名に拡張子(またはファイル・タイプ).bad
を付けたものがファイル名になります。