SQL*Loader 是否具有允许自定义日志文件的任何功能?

Does SQL*Loader have any functionality that allows for customizing the log file?

我被要求创建一个允许第三方公司将数据转储到我们的几个表中的系统。这些第三方定期提供 csv 文件,经过一些研究后,Oracle 似乎自己有一个标准工具可以这样做,"sqlldr"。从那以后,我已经让它工作到可接受的程度,并且我们安排了一项工作,每天一次 运行 该脚本。

但是其中一个第三方提供了非常脏的数据,我不能指望它总是每隔 row/record 加载一次(看起来大约有 8% 会失败)。我的老板让我把前几个测试的 "all output" 转发给他,我像个白痴一样把日志文件也发了。

他要求修改此 "report" 以包括那些不是唯一约束的异常以及输入文件中导致异常的行。

这意味着我需要来自日志文件的数据,但也需要来自(我相信)单个文档中的拒绝文件的数据。 SQL*Loader 本身是否允许任何可能实现相同目的的自定义,而不是编写复杂的 shell 脚本来组合这两者?我通读了 Oracle 文档,但没有发现任何暗示这一点的内容,但我也学会了不要完全相信它。

这可能吗?理想情况下,该解决方案允许我向拒绝文件添加原始输入文件中不存在的值,但我也对日志文件或拒绝文件的任何自定义感兴趣。

没有

我打算就此打住,但您可以定义日志文件的 名称,这可能有助于解决问题。 SQL*Loader 的大多数自动化都涉及将其包装在 shell 脚本中;又名 "roll your own."