作业完成后sqlldr会自动提交吗?

时间:2014-01-06 18:54:03

标签: sql oracle sql-loader

sqlldr user/pwd@host skip=1 control=$CUR_CTL.final data=$fpath log=data.log rows=10000 direct=true errors=999

我正在上传一个只有8行的csv文件。 上述命令是仅在10000行之后运行提交还是在作业结束时提交?

1 个答案:

答案 0 :(得分:4)

是的,它将在文件末尾提交。如果没有,那将是不合适的,真的

从技术上讲,由于您有direct=y,因此您正在进行直接路径加载,因此ROWS command line parameter会影响SQL * Loader在大负载期间执行数据保存而不是提交的频率。唯一真正的区别在于索引可用性。

  

ROWS参数标识在数据保存之前要从数据文件中读取的行数。默认设置是在加载结束时读取所有行并保存一次数据。

如果文件中有10008行,它将在前10000行之后执行数据保存,然后在最后8行之后执行数据保存,并且只有在索引到达文件末尾时才会使索引可用。

如果ROWS高于数据文件中的实际行数,则不会导致数据被忽略。

您还可以检查exit status code,它有望告诉您所有行都已成功加载,日志文件将显示插入的行数。