`
desert3
  • 浏览: 2160340 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

LOB variable no longer valid after subsequent fetch

阅读更多
cx_oracle读取oracle wm_concate函数操作过后的长文本clob字段,当使用fetchall或者fetchmany读取数据时,报上面的错

参考下面的文档,发现只能使用下面2种方式中的任一种来操作数据,总体来说,大数据量时读取效率不高。
通过to_char(wm_concat(brand_name))把clob字段变成varchar字段后,再采用cursorSelect.fetchmany(1000),对于30W条数据的处理时间从10分钟减少到1分半!

for result in cursorSelect:
尝试了几次感觉效率比下面的稍微好点
或者
result = cursorSelect.fetchone() 自己控制while循环读取


参考Lob objects
Internally, Oracle uses LOB locators which are allocated based on the cursor array size. Thus, it is important that the data in the LOB object be manipulated before another internal fetch takes place. The safest way to do this is to use the cursor as an iterator. In particular, do not use the fetchall() method. The exception “LOB variable no longer valid after subsequent fetch” will be raised if an attempt to access a LOB variable after a subsequent fetch is detected.
分享到:
评论
1 楼 loot00 2016-10-13  
您好!
  我也遇到了相同的错误信息。我是用f_link_lob()做聚合,读取几条数据时很正常,读取几万条数据就会报这个错。
  没看清楚您的解决方法,是要把代码改成这样的吗?
    for result in cursorSelect:
        result = cursorSelect.fetchone()
尝试着这样做了以后,结果返回了一条记录的第一个字段。于是把fetchone()改为fetchmany(1)。结果只能返回一条记录。现在也不知道怎么能改成功了。
  希望您能帮忙解答我的问题,谢谢!

相关推荐

    oracle dbms_lob

    Oracle数据库系统中,`DBMS_LOB`是一个重要的PL/SQL包,专门用于处理大型对象(LOBs,Large Object)。LOBs是Oracle提供的一种数据类型,用于存储大量数据,如文本、图像、音频或视频文件等。这个包包含了各种过程和...

    英语语料库LOB语料库

    LOB语料库 创建时间: 1970年代初 创建单位:英国Lancaster大学和挪威Oslo大学以及Bergen大学 规模层级: 100万词次 基本情况:研究当代英国英语,与美国英语对比,使用了TAGIT系统,以统计方式建立换算几率矩阵,提高标注...

    Oracle数据库中LOB的调优.pdf

    Oracle数据库中LOB的调优 Oracle数据库中的LOB(Large OBject)是一种特殊的数据类型,用于存储大量的二进制数据或字符数据。LOB数据类型包括BLOB、CLOB、NCLOB和BFILE四种,分别用于存储二进制数据、字符数据、...

    Oracle LOB 详解

    Oracle LOB 详解 Oracle LOB(Large OBject)是一种复杂的数据类型,用于存储大型二进制数据,如图像、音频、视频等。 Oracle LOB 详解涵盖了 LOB 的基本概念、创建、存储、维护等方面,旨在帮助开发者和数据库...

    Oracle Lob Performance Guidelines

    ### Oracle LOB (Large Object) 性能指南 在数据库管理与优化领域,Oracle LOB 类型因其存储大量文本或二进制数据的能力而被广泛使用。然而,正确地使用和优化 LOB 可以显著提升数据库应用的整体性能。本文档将基于...

    ORACLE LOB大对象处理

    Oracle数据库中的LOB(Large Object)类型是用来存储大量数据的,如文本、图像、音频或视频等。LOBs分为四种类型:BLOB(Binary Large Object)用于二进制数据,CLOB(Character Large Object)用于字符数据,NCLOB...

    前端开源库-lob

    **前端开源库-Lob** Lob是一个强大的前端开源库,主要设计用于简化与LOB(Letters, Cards, and Labels)API的交互。LOB API是后端服务,它允许开发者轻松地创建和发送高质量的物理邮寄,如信件、卡片和标签。在Web...

    Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt

    Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt

    本文档主要介绍如何对LOB字段进行处理

    ### 如何对LOB字段进行处理 #### 摘要与背景 随着信息技术的进步及应用需求的不断扩展,数据库管理系统(DBMS)面临着存储多样化数据类型的挑战。例如,在开发旅游信息系统时,除了基本的文字信息外,还需要处理大量...

    Oracle LOB字段处理工具

    Oracle数据库系统中,LOB(Large Object)字段是用来存储大量数据的类型,如图像、音频、视频或大型文本文件。在数据库操作中,LOB字段的处理往往比常规的行数据更为复杂,因为它涉及到大块的数据读取、写入和管理。...

    DB2 LOB 详解

    DB2 LOB详解涉及的知识点非常丰富,下面将从DB2中LOB字段的存储及处理过程、如何创建LOB数据对象、维护LOB数据的注意事项、使用工具进行维护等方面进行详细说明。 首先,DB2中LOB字段的存储和处理过程是一门深奥的...

    Brown语料库和LOB语料库

    LOB语料库是模仿Brown语料库的比例建立起来的英国英语语料库,其预料搜集自1961年英国英语出版物上的文本,共500篇,每篇大约2000个单词,合计100万单词。Brown语料库带词性标记,LOB语料库不带词性标记。

    SQL Server存储LOB数据的策略与方法.pdf

    在探讨SQL Server数据库中存储LOB(Large Object)数据的策略与方法时,首先需要理解几个核心概念和原理。LOB数据类型通常是指存储在数据库中非常大的二进制或者字符型数据,例如文档、图表和图像文件。这些数据的...

    sybaseIQ LOB手册

    Sybase IQ LOB手册是一本专业指导手册,旨在为Sybase IQ数据库管理系统用户提供如何在IQ中管理大对象(LOB)的指导。LOB主要指图片、视频、音频等大型数据类型,这类数据因为其体积较大,不适合用常规的关系型字段...

    ODI LOB 类型KM

    在给定的压缩包文件中,我们有两个与LOB(Large Object)类型相关的Knowledge Modules(KM),它们是KM_IKM Oracle Incremental UpdateLOB.xml和KM_LKM SQL to SQL LOB (JYTHON).xml。 首先,让我们详细了解一下LOB...

    简单易行:Spring中操作LOB字段案例

    在Spring框架中,LOB(Large Object)字段通常用于存储大数据,如BLOB(Binary Large Object)用于二进制数据,如图片或文档,CLOB(Character Large Object)用于字符数据,如长文本。本篇文章将深入探讨如何在...

    OCI_LOB样例程序

    在Oracle数据库中,LOB(Large Object)是用来存储大量数据的数据类型,如文本、图像或音频文件。OCI(Oracle Call Interface)是Oracle提供的C语言接口,用于开发与Oracle数据库交互的应用程序。`OCI_LOB`样例程序...

    Oracle更改表空间(table、index、lob)

    ### Oracle更改表空间(table、index、lob) 在Oracle数据库管理中,更改表空间是一项重要的维护任务,尤其是在需要重新组织数据或优化存储时。本文将详细介绍如何通过SQL命令来更改表空间中的表(table)、索引...

Global site tag (gtag.js) - Google Analytics