使用cx_Oracle将一长串字符串(> 4000字节)传递给Oracle(11gR2)存储过程

时间:2010-07-29 00:41:48

标签: python oracle cx-oracle

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

为了让狗屎做得足够好,我们滥用了我在评论中提到的CLOB。编写代码花了不到30分钟,运行速度快。