0

我们需要使用 cx_Oracle 批量加载许多长字符串(>4000 字节,但 <10,000 字节)。表中的数据类型是 CLOB。我们将需要加载超过 1 亿个这些字符串。一件一件地做这件事会很糟糕。以批量方式进行,即使用 cursor.arrayvar() 将是理想的。但是,CLOB 不支持数组。BLOB、LOB、LONG_STRING LONG_RAW 也不行。任何帮助将不胜感激。

4

2 回答 2

0

为了完成足够好的工作,我们滥用了我在评论中提到的 CLOB。不到 30 分钟就完成了编码、运行速度和工作。

于 2010-07-30T16:08:31.527 回答
0

离墙建议,但是由于您使用的是 11gR2,因此请查看DBFS 从“加载”的角度来看,您只是在复制文件,并且它们“显示”为 LOB。您可以使用内置的 FTP 服务器做类似的事情,但文件处理要容易得多。

然后您编写一个过程,将它们从 dbfs_content 视图中拉出并将它们推送到您的过程中。

另一个是,如果它们都小于 12,000 字节,则将它们分成三个部分,并将它们作为三个单独的 VARCHAR2(4000) 字符串处理,然后在 PL/SQL 端再次将它们连接起来。

于 2010-07-29T03:48:25.953 回答