CTL BADFILE SQLLDR

时间:2015-12-14 05:33:21

标签: sql-loader

我需要帮助。我的目标是创建一个CTL文件。每当sqlldr使用此CTL运行时,它不应该创建新的坏文件,而应该附加先前创建的BAD文件。这样我就可以将所有记录都存储在一个文件中。

这可以实现,请建议。

1 个答案:

答案 0 :(得分:0)

你必须围绕调用sqlldr编写自己的包装器程序或脚本。在sqlldr运行之后,它必须检查是否存在坏文件,并将其附加到一个不同名称的文件,如上所述。

我质疑这个的价值。通常,如果创建.bad文件,则会调查原因,然后修复表,因为列的大小可能错误,修复控制文件甚至数据,然后重新运行该进程,从而产生新的.bad(或不)基于变化。

因此,下一个.bad文件(如果已创建)可以包含相同的记录或新记录,具体取决于更改的内容,并且与之前的.bad记录实际上并不相关。我担心我没有看到将之前运行的.bad记录保存在一起的价值,因为它们在没有知道创建它们的其他环境的情况下毫无意义。

也许如果您添加了一些关于为什么要这样做的信息,我们可以提出一个不同的解决方案。