2010-11-26 47 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 =(反馈),ROWS = 1000)

负载数据


成表test_HD


附加

时(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

}

+2

也许如果你发布了一个没有加载的记录样本,你认为应该发生在他们和你的控制文件的相关部分,你可能会得到一个有用的回应。据我所见,你有一个74256记录的源文件,其中一些被加载到一个表中,其中一些被加载到另一个表中。我其实没有看到任何问题。 – 2010-11-26 05:39:34

+2

显然你的控制文件中有一个WHEN子句,所以你应该发布该控制文件和一些被跳过的行(正如Gary已经提到的) – 2010-11-26 08:40:01

回答

1

这不是错误。日志告诉你,72K记录没有被加载到任何地方,因为它们不符合你的任何WHEN子句。换句话说,在74256条记录中,有31条在38和39位有'HD'或'AS',其余则没有。你也可以跳过一行(也许第一行是标题行)。

如果您只是加载'HD'和'AS'记录,那么这是一个成功的结果。