0

SQLローダーから以下のログメッセージが表示されます。このメッセージは「すべてのWHEN句が失敗したため、行がロードされていません」ですか。本当にエラー?最後に、合計レコードが74256として読み取られたことを示すログメッセージが表示されます。ctl制御ファイルで、各行にレコードタイプの38〜39文字が表示され、それに基づいて別のテーブルに挿入されます。

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ファイル

オプション(エラー= 9999999999、サイレント=(フィードバック)、行= 1000)

データを読み込む


テーブルtest_HDに


追加

when(038:039)='HD'

((

record_sequence_no POSITION(029:037)DECIMAL EXTERNAL

、line_type POSITION(040:040)CHAR

、header_record_type POSITION(041:041)CHAR

、enquiry_telephone_number POSITION(042:052)CHAR

、total_amt_last_bill POSITION(053:066)DECIMAL EXTERNAL

、total_payment_received POSITION(067:080)DECIMAL EXTERNAL

)。

テーブルtest_ASに


追加

when(038:039)='AS'

((

record_sequence_no POSITION(029:037)DECIMAL EXTERNAL

、line_type POSITION(040:040)CHAR

、girn POSITION(041:047)CHAR

、charge_desc POSITION(048:077)CHAR

}

4

1 に答える 1

1

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

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

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

于 2010-11-29T15:15:52.617 に答える