sqlldr user/pwd@host skip=1 control=$CUR_CTL.final data=$fpath log=data.log rows=10000 direct=true errors=999
我正在上传一个只有8行的csv文件。 上述命令是仅在10000行之后运行提交还是在作业结束时提交?
答案 0 :(得分:4)
是的,它将在文件末尾提交。如果没有,那将是不合适的,真的
从技术上讲,由于您有direct=y
,因此您正在进行直接路径加载,因此ROWS
command line parameter会影响SQL * Loader在大负载期间执行数据保存而不是提交的频率。唯一真正的区别在于索引可用性。
ROWS
参数标识在数据保存之前要从数据文件中读取的行数。默认设置是在加载结束时读取所有行并保存一次数据。
如果文件中有10008行,它将在前10000行之后执行数据保存,然后在最后8行之后执行数据保存,并且只有在索引到达文件末尾时才会使索引可用。
如果ROWS
高于数据文件中的实际行数,则不会导致数据被忽略。
您还可以检查exit status code,它有望告诉您所有行都已成功加载,日志文件将显示插入的行数。