在cx_Oracle上执行CLOB元素
|
我有一个函数,可以将大量数据插入oracle数据库。我正在尝试通过executemany实现这一目标。
我的函数如下所示:
def InsertChunk(self):
try:
if len(self.list_dict_values) >= self.chunksize:
self.db.cursor.executemany(
str(self.insert_sql),
self.list_dict_values
)
self.list_dict_values = []
except cx_Oracle.Error, e:
print e
许多表使用此功能,并且如果这些表中没有CLOB列,则可以正常使用。仅当chunksize设置为1或2时,它才适用于具有CLOB列的表。有时它适用于3,但大多数时候不起作用。我什至在块大小为4时使它工作一次。我正在使用此功能将块大小设置为1000左右,以加快处理速度。
当chunksize设置为3时,有时会返回以下错误:
ORA-24813:无法发送或接收不支持的LOB。
有时它说中止并停止脚本。
知道为什么每次使用相同参数运行此脚本时都会有不同的行为吗?
没有找到相关结果
已邀请:
1 个回复
讼乐
变量类型引起的。当我填写相当于equivalent2的金额时,我正在执行以下操作:
您需要创建一个具有arraysize的变量,而不是许多小变量,然后在dict的每一行中对其进行引用。
将每一行设置为相同的值似乎很奇怪,但是它可以工作-oracle代码在内部希望遍历指针列表,所以这就是您需要做的。