2010-11-26 9 views
0

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

+2

ロードされていないレコードのサンプルを投稿した場合や、コントロールファイルの関連部分に何が起こると思われるのかなど、有用な応答が得られるかもしれません。私が見る限り、74256レコードのソースファイルがあり、そのうちのいくつかは1つのテーブルにロードされ、その一部は別のテーブルにロードされました。私は実際には何の問題も見ません。 –

+2

明らかに、コントロールファイルにWHEN句があるので、そのコントロールファイルとスキップされた行の一部を投稿する必要があります(Garyは既に言及しています) –

+1

推測の詳細....しかし、 'else'句を使用すると、when文の条件のいずれも満たされなかった場合にスクリプトが何をすべきかを知ることができます。 – Twelfth

答えて

1

これは誤りではありません。ログは、72KレコードがWHEN句のいずれも満たさなかったためどこにもロードされていないことを伝えています。

つまり、74256個のレコードのうち、31個は38番目と39番目の位置に「HD」または「AS」を持ち、残りは残りませんでした。また、1行をスキップしました(おそらく最初の行はヘッダー行です)。

「HD」と「AS」レコードだけをロードしようとすると、これは成功した結果です。

+0

ありがとう – Arav