我从数据库中获取记录到mylist,然后想在每个列表元素上使用.decode函数,但这给了我AttributeError:'cx_Oracle.LOB'对象没有属性'decode',所以我尝试转换使用.decode函数之前将元素转换成字符串,但列表中的某些元素却面临以下错误:
mylist [rr] = [str(x)for mylist [rr]中的x]
ProgrammingError:LOB变量在后续提取后不再有效
答案 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)>
希望这些选项之一对您有用!