我需要帮助。我的目标是创建一个CTL文件。每当sqlldr使用这个CTL运行时,它不应该创建一个新的坏文件,而应该附加以前创建的坏文件。这样我就可以把所有的记录放在一个文件里。
这可以实现吗,请提出建议。
发布于 2015-12-15 23:53:27
您必须围绕调用sqlldr编写自己的包装器程序或脚本。在sqlldr运行后,它将不得不检查坏文件的存在,并将其附加到您上面提到的另一个命名的文件中。
不过,我对此的价值表示怀疑。通常,如果创建了.bad文件,则需要调查原因,然后将表修复为可能调整错误大小的列,修复控制文件甚至数据,然后重新运行进程,根据更改生成(或不生成)新的.bad。
因此,如果创建了下一个.bad文件,那么它可能包含相同的记录,也可能包含新的记录,这取决于发生了什么变化,并且与以前的.bad记录没有真正的关系。我恐怕看不到保留以前运行的.bad记录的价值,因为在不知道创建它们的其他环境的情况下,它们是毫无意义的。
也许,如果您添加了更多关于为什么要这样做的信息,我们可能会提出一个不同的解决方案。
https://stackoverflow.com/questions/34260383
复制相似问题