SQLローダーから以下のログメッセージが表示されます。このメッセージは "すべてのWHEN句が失敗したため、ローはロードされませんか?"本当に間違い? 最後に私は74256として読み込まれた総レコードを示すログメッセージを持っています.CTL制御ファイルでは、各行 のレコードタイプの38-39文字を参照し、それに基づいて別のテーブルに挿入されます。SQLローダーエラー
Table TEST1_AA:
42233 Rows successfully loaded.
0 Rows not loaded due to data errors.
32023 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
Table IIR_TEST2_BB:
0 Rows successfully loaded.
0 Rows not loaded due to data errors.
74256 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
Table IIR_TEST3_CC:
31 Rows successfully loaded.
0 Rows not loaded due to data errors.
74225 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
Total logical records skipped: 0
Total logical records read: 74256
Total logical records rejected: 0
Total logical records discarded: 1
サンプルCTLファイル
OPTIONS(ERRORS = 9999999999、SILENT =(FEEDBACK)、ROWS = 1000)
負荷データ
テーブルに
をtest_HD
追加
とき(038:039)= 'HD'
(
record_sequence_noのPOSITION(029:037)DECIMAL EXTERNAL
、line_typeのPOSITION(040:040)CHAR
、 (042:052)CHER
、total_amt_last_bill位置(053:066)DECIMAL EXTERNAL
、total_payment_received位置(067:080)DECIMAL EXTERNAL
)
テーブルtest_ASに
を追加
(038:039)= 'AS'
(
record_sequence_no位置(029:037)DECIMAL EXTERNAL
、line_type位置(040:040)CHAR
、girn位置(041:047)CHAR
、charge_desc位置( 048:077)CHAR
ロードされていないレコードのサンプルを投稿した場合や、コントロールファイルの関連部分に何が起こると思われるのかなど、有用な応答が得られるかもしれません。私が見る限り、74256レコードのソースファイルがあり、そのうちのいくつかは1つのテーブルにロードされ、その一部は別のテーブルにロードされました。私は実際には何の問題も見ません。 –
明らかに、コントロールファイルにWHEN句があるので、そのコントロールファイルとスキップされた行の一部を投稿する必要があります(Garyは既に言及しています) –
推測の詳細....しかし、 'else'句を使用すると、when文の条件のいずれも満たされなかった場合にスクリプトが何をすべきかを知ることができます。 – Twelfth