【发布时间】:2013-08-13 18:40:38
【问题描述】:
我正在尝试访问由带有cx_Oracle 的过程返回的 LOB 的值。 LOB 是元组的第一个字段 ('reg[0]')。
当我这样做时:
regs = cursor.fetchall()
for reg in regs:
print reg[0]
出现以下错误:
DatabaseError: ORA-22922: nonexistent LOB value
当我尝试使用 read() 方法时(reg[0].read() 而不是print reg[0]),但错误是一样的。
在这种情况下如何访问 LOB 值?
【问题讨论】:
-
The cx_Oracle documentation advises against using
fetchallwith LOBs。如果您写for reg in cursor而不是将所有数据读入列表然后打印出来,是否有帮助? (顺便说一句,我无法重现您的错误;我只能重现上面 cx_Oracle 链接中提到的错误。我使用的是 Oracle XE 11.2.0.2.0、Python 2.7.3 和 cx_Oracle 5.1.2,如果有帮助的话。)