如何使用 SQL Loader 将 .dat 文件名存储在表中
我有数百个数据文件,它们都具有相同的结构,并且都需要加载到同一个表中。但是,表中有一个名为“文件名”的额外列,我应该存储从其中加载数据的 .dat 文件的名称。
我知道我可以为每个 .dat 文件创建一个单独的控制文件,但这很痛苦。任何人都可以建议更好的方法或如何从 dat 文件列表生成控制文件?
I have hundreds of data files that all have the same structure and all need to be loaded into the same table. However, there is an extra column called "filename" in the table, and I am supposed to store the name of the .dat file the data was loaded from in there.
I know I could create a separate control file for each .dat file but that is a pain to do. Can anyone suggest a better way or how to generate the control files from a list of dat files?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可能最简单的事情是使用不填充文件名列的单个控制文件,并在加载每个文件后使用 SQLPlus 执行更新,例如:
因此,每个新的行集都加载文件名的 NULL 值,然后更新当前文件名包含 NULL 的所有行。
Probably the easiest thing is to use a single control file that does not populate the filename column, and after loading each file use SQLPlus to execute an update like:
So each new set of rows is loaded with a NULL value for filename, then you update all the rows that have NULL to the current filename.
这里有一段代码用于派生 CTL 文件,但它排序取决于您的操作系统。
There's a chunk of code here for deriving CTL files, but it sort of depends on your OS.