ファイルデータを外部テーブルにロードするためのOracle外部テーブルスクリプトを作成しました。これが私のスクリプトの詳細です。
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY DATA_DIR
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE
LOGFILE log_dir:'file.log'
BADFILE bad_dir:'file.bad'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' AND '"'
MISSING FIELD VALUES ARE NULL
)
LOCATION (DATA_DIR:'file')
)
REJECT LIMIT 1
上記の外部テーブルを作成したとき。ログ ディレクトリ内のログ ファイルのみを指定しました。対応する不良ディレクトリに不良ファイルを作成したことはありません。そのため、データをロードしている間、これまでエラーに遭遇したことはありません.
しかし、今日、以下のエラーに遭遇しました
エラー:
ODCIEXTTABLEFETCH コールアウトの実行中
ORA-29400: データ カートリッジ エラー
エラー オープン ファイル (不正なディレクトリ)/file.bad
今日だけファイルにジャンクデータがあったに違いないと思ったので、不良ファイルを書き込もうとしていました。そのため、対応するbadディレクトリに空のファイルbadを作成しました。私たちはそのエラーを乗り越え、不良ファイルにジャンク データが含まれているのを楽しみにしていましたが、空です。
空の不良ファイルを作成することが必須である場合、これまでにこのエラーが発生しなかった理由を説明してください。