facing error: ProgrammingError: LOB variable no longer valid after subsequent fetch
facing error: ProgrammingError: LOB variable no longer valid after subsequent fetch
我从数据库中获取记录到 mylist,然后想在每个列表元素上使用 .decode 函数,但这给了我 AttributeError: 'cx_Oracle.LOB' object has no attribute 'decode',所以我我试图在使用 .decode 函数之前将元素转换为字符串,但我面临列表中某些元素的以下错误:
mylist[rr] = [str(x) for x in mylist[rr]]
ProgrammingError:LOB 变量在后续获取后不再有效
这里有几个选项:
(1) 升级到 cx_Oracle 6.x 消除了这个错误
(2) 使用迭代器来处理游标而不是 cursor.fetchall()
(3) 如果返回的 CLOB 相当小,则使用输出类型处理程序将 LOB 转换为字符串,这也提高了性能,因为减少了数据库的往返(参见 https://github.com/oracle/python-cx_Oracle/blob/master/samples/ReturnLobsAsStrings.py)
希望其中一个选项对您有用!
我从数据库中获取记录到 mylist,然后想在每个列表元素上使用 .decode 函数,但这给了我 AttributeError: 'cx_Oracle.LOB' object has no attribute 'decode',所以我我试图在使用 .decode 函数之前将元素转换为字符串,但我面临列表中某些元素的以下错误:
mylist[rr] = [str(x) for x in mylist[rr]]
ProgrammingError:LOB 变量在后续获取后不再有效
这里有几个选项:
(1) 升级到 cx_Oracle 6.x 消除了这个错误
(2) 使用迭代器来处理游标而不是 cursor.fetchall()
(3) 如果返回的 CLOB 相当小,则使用输出类型处理程序将 LOB 转换为字符串,这也提高了性能,因为减少了数据库的往返(参见 https://github.com/oracle/python-cx_Oracle/blob/master/samples/ReturnLobsAsStrings.py)
希望其中一个选项对您有用!