有时我们需要知道LOAD TABLE语句在装载数据文件时是否执行正常,有没有发生错误。比如,唯一约束是否违背、数据文件中字段数据类型是否匹配等。下面以一个例子来说明LOAD TABLE的错误处理:
LOAD TABLE service
(
service_key '|!' ,
call_waiting_flag '|!' ,
caller_id_flag '|!' ,
voice_mail_flag '|!' ,
cellular_flag '|!' ,
internet_flag '|!' ,
isdn_flag '|!'
)
FROM '/sybiq/import/service.dat'
ESCAPES OFF
QUOTES OFF
NOTIFY 1000000
ROW DELIMITED BY '\x0a'
ignore constraint unique 0,data value 0,all 0 --0表示忽略这种类型的所有错误, n>0表示当发生n+1次时装载停止
Message Log '/sybiq/import/service_msg.log' --指定错误信息输出日志文件
Row Log '/sybiq/import/service_row.log' --指定错误数据写入的文件
Only log Unique, Data Value
Log Delimited By '|!'
WITH CHECKPOINT ON;
COMMIT;
上面的load语句时,如果遇到违反约束的情况,会把相应的错误信息写入service_msg.log,出错的记录写入service_row.log文件中。
阅读(5057) | 评论(0) | 转发(0) |