面临错误:ProgrammingError:LOB变量在后续提取后不再有效

时间:2018-06-26 09:41:38

标签: python-2.7 clob cx-oracle

我从数据库中获取记录到mylist,然后想在每个列表元素上使用.decode函数,但这给了我AttributeError:'cx_Oracle.LOB'对象没有属性'decode',所以我尝试转换使用.decode函数之前将元素转换成字符串,但列表中的某些元素却面临以下错误:

mylist [rr] = [str(x)for mylist [rr]中的x]

ProgrammingError:LOB变量在后续提取后不再有效

1 个答案:

答案 0 :(得分:1)

您在这里有一些可用的选择:

(1)升级到cx_Oracle 6.x,从而消除了此错误

(2)使用迭代器而不是cursor.fetchall()来处理游标

(3)如果返回的CLOB很小,则使用输出类型处理程序将LOB转换为字符串,这也由于减少了与数据库的往返次数而提高了性能(请参见https://github.com/oracle/python-cx_Oracle/blob/master/samples/ReturnLobsAsStrings.py

希望这些选项之一对您有用!