我正在使用 SQL*Loader 将大量 CSV 文件推送到 Oracle 数据库。我正在使用 JAVA 构建智能来创建控制文件的内容。原因是数据的性质使得控制文件的内容随着我获得的每个 CSV 文件而变化。或者至少我必须打开控制文件并执行一些检查。我想节省与文件 I/O 操作相关的创建、打开和其他成本。我想在内存中维护控制文件信息,并将该数据结构提供给 SQL*Loader 命令,而不是指定控制文件。
问问题
727 次
1 回答
0
SQL*Loader 是不适合这项工作的工具。它专为可重复负载而设计。显然这不是你在做什么。
“我想节省与文件 I/O 操作相关的创建、打开和其他成本。”
而你对这个繁重成本的基准是...... ????
无论如何,如果您真的想在每次需要可以读取文件头并生成动态 SQL 语句以加载文件的其余内容的东西时从不同的文件结构加载。
就我个人而言,我会为此选择最常用的 PL/SQL,前提是我可以将文件放到数据库服务器上。如果我必须从客户端加载它,那么可能一个 Java 程序就是答案。但是,通过网络传输文件的内容仍然是真正的 I/O 成本。在这种情况下,将其交付到正确的服务器是最好的节省。
于 2014-11-15T00:25:16.937 回答