作业完成后sqlldr是否自动提交?

作业完成后sqlldr是否自动提交?,sql,oracle,sql-loader,Sql,Oracle,Sql Loader,我正在上传一个只有8行的csv文件。 上述命令是否仅在10000行之后运行提交,还是在作业结束时也执行提交?是的,它将在文件结束时执行提交。如果不是真的,那就太不合适了 从技术上讲,由于您有direct=y,因此您正在执行直接路径加载,因此SQL*加载程序在大加载期间执行数据保存而不是提交的频率会受到影响。唯一真正的区别在于索引的可用性 ROWS参数标识在数据保存之前要从数据文件中读取的行数。默认情况下,在加载结束时读取所有行并保存数据一次 如果文件中有10008行,它将在前10000行之后执行

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

是的,它将在文件结束时执行提交。如果不是真的,那就太不合适了

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

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

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

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


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

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

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

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

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

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


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

我的bash脚本中有两个连续的命令:sqlldr,然后是sqlplus命令,用于运行存储过程。当存储过程尝试访问某个表时,sqlldr似乎没有完全完成对该表的提交。知道哪里出了问题吗?@user640378-我想你没有在后台运行
sqlldr
。您看不到部分提交,在您描述的场景中,只有一次提交。程序中是否缺少一些数据,但稍后才可见?我想你需要更详细地解释你所看到的。
sqlldr
是否可能在不处理整个文件的情况下退出,可能是因为达到了拒绝限制?我创建了一个包含所有细节的新问题:我的bash脚本中有两个连续的命令:sqlldr,然后是sqlplus命令,用于运行存储过程。当存储过程尝试访问某个表时,sqlldr似乎没有完全完成对该表的提交。知道哪里出了问题吗?@user640378-我想你没有在后台运行
sqlldr
。您看不到部分提交,在您描述的场景中,只有一次提交。程序中是否缺少一些数据,但稍后才可见?我想你需要更详细地解释你所看到的。
sqlldr
是否可能在不处理整个文件的情况下退出,可能是因为达到了拒绝限制?我创建了一个包含所有详细信息的新问题:
sqlldr user/pwd@host skip=1 control=$CUR_CTL.final data=$fpath log=data.log rows=10000 direct=true errors=999