`

Oracle LOB字段操作的一点教训

阅读更多

      今天有个功能需要对CLOB字段进行操作,期间遇到几个问题,老天眷顾,都算是解决了,记一下,免得日后重蹈覆辙。

      错误一:

ORA-22920: 未锁定含有 LOB 值的行

出现这个问题的原因,是由于select出LOB字段时未加 for update,ORACLE官方文档对该错误的说明:

ORA-22920 row containing the LOB value is not locked 

Cause: The row containing the LOB value must be locked before updating the LOB value. 

Action: Lock the row containing the LOB value before updating the LOB value. 

  
于是加上for update再测,发现错误提示变了,变成下面的:

 

 

     错误二:
ORA-01002: 读取违反顺序

出现这个问题的原因是Connection 的 autoCommit属性值为true,改成

conn.setAutoCommit(false);

......

LOB操作

.....

conn.commit();

conn.setAutoCommit(true);

 

就可以了。

 

另外,注意第一步的select时,不要select出非LOB的字段,并且,如果一张表有多个LOB字段,操作顺序也最好按照表里的字段顺序来操作,否则也可能出错。

 

分享到:
评论

相关推荐

    Oracle LOB字段处理工具

    "Oracle LOB字段处理工具"就是为了简化这些操作而设计的软件。 这款工具主要针对Oracle数据库中的BLOB(Binary Large Object)、CLOB(Character Large Object)和NCLOB(National Character Large Object)等LOB...

    Oracle数据库中LOB的调优.pdf

    设置合理的CHUNK值,不仅可以避免存储空间的浪费,而且由于Oracle对LOB字段的I/O操作也是以CHUNK为单位,因此可以改善I/O性能。CHUNK的值应该根据实际应用中LOB字段经常使用的平均长度来调节。 2. In-Line与Out-Of-...

    Spring+Hibernate处理Oracle lob字段(一)

    在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...

    Oracle LOB 详解

    LOB 的维护包括创建、修改、删除等操作。 Oracle 提供了多种维护 LOB 的方式,包括: * 使用 SQL 语句维护 LOB。 * 使用 PL/SQL 维护 LOB。 * 使用 OCI 维护 LOB。 四、LOB 的优点和缺点 LOB 有很多优点,例如: ...

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

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

    Oracle中LOB字段的存储管理和优化.pdf

    Oracle 中 LOB 字段的存储管理和优化 Oracle 中 LOB(Large OBjects)字段是一种特殊的数据类型,用于存储非结构化数据,如图像、音频、视频等。LOB 字段的存储管理和优化是数据库管理中一个重要的方面。本文将...

    Oracle Lob Performance Guidelines

    4. **并行操作**:利用 Oracle 的并行查询功能来加速涉及大量 LOB 数据的操作,例如数据加载或备份。 5. **使用适当的 LOB 子类型**:根据实际需求选择合适的 LOB 子类型,如使用 `BLOB` 存储图像文件,`CLOB` ...

    ORACLE LOB大对象处理

    Oracle提供了一系列API和PL/SQL包,如`UTL_FILE`、`UTL_RAW`和`DBMS_LOB`,用于操作LOB。开发人员可以利用这些工具进行LOB数据的读写和管理。 10. **案例研究** 博文链接可能提供了一些具体的示例和实践技巧,...

    lob字段数据删除空间测试.txt

    测试oracle数据库中,lob字段在不同参数条件下,删除数据后占用空间的情况。 测试1 测试disable storage in row下的lob字段 测试2 测试非disable storage in row模式下 该模式为默认模式,既小于4k的数据不会存在lob...

    批量导出ORACLE数据库BLOB字段生成图片

    批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将数据库中的图片资源导出到本地文件系统的情况。下面将详细介绍这一过程及其相关知识点。 首先,我们需要理解BLOB类型。BLOB...

    oracle dbms_lob

    在实际应用中,`DBMS_LOB`包通常与SQL DML语句结合使用,以处理LOB字段。例如,可以使用`DBMS_LOB.WRITE`在INSERT或UPDATE语句中修改LOB值,或者使用`DBMS_LOB.APPEND`在已有的LOB后面添加新内容。 学习`DBMS_LOB`...

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

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

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

    本篇文章将深入探讨如何在Spring中有效地操作LOB字段,以实现对大数据的管理。 首先,我们需要一个数据访问层,例如`PostJdbcDao2.java`,在这个类中,我们将定义用于处理LOB字段的方法。Spring JDBC Template是...

    记录一次EXPDP导出BLOB字段 遇到ORA-01555报错

    oracle expdp导出blob字段遇到ora-01555报错的解决方案

    关于oracle clob 类型字段重建索引SQL及修复用户表空间索引空间的存储过程

    在Oracle数据库中,CLOB(Character Large Object)类型字段用于存储大量的文本数据,如XML文档、长篇文章等。由于其特殊性,处理CLOB类型的字段时可能会遇到性能问题,特别是当涉及索引时。本话题将围绕如何针对...

    ORACLE中CLOB字段转String类型

    ### ORACLE中CLOB字段转String类型 在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何...

    Oracle如何对CLOB行字段来执行全文检索

    Oracle CLOB 行字段全文检索实现方法 Oracle 数据库中,CLOB 行字段是一种常用的数据类型,用于存储大...这些过程函数可以帮助开发者更好地操作 LOB 数据类型,实现对 CLOB 字段中的内容进行 Like 查找和其他操作。

    oracle查询blob字段照片(jpeg) 像素大小sql

    当处理Blob类型的数据时,通常会使用Oracle提供的包`DBMS_LOB`来进行操作,因为它提供了丰富的函数和过程来读取、写入、拷贝以及处理Blob数据。 ### 2. JPEG格式的图片 JPEG(Joint Photographic Experts Group)...

Global site tag (gtag.js) - Google Analytics