今天有个功能需要对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字段处理工具是一款简单的lob字段处理工具
Oracle数据库中LOB的调优.pdf
Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt
包含了官方权威说明。而且有LOB字段的日常维护总结,方便大家交流学习。
NULL 博文链接:https://liubing1883.iteye.com/blog/405679
分享一个来自官方的对Oracle LOB字段的性能调优。
ORACLE LOB大对象处理.doc ORACLE LOB大对象处理.doc
Oracle中LOB字段的存储管理和优化.pdf
测试oracle数据库中,lob字段在不同参数条件下,删除数据后占用空间的情况。 测试1 测试disable storage in row下的lob字段 测试2 测试非disable storage in row模式下 该模式为默认模式,既小于4k的数据不会存在lob...
oracle dbms_lob 智能大对象(Blob、Clob)
只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片
本文档主要介绍如何对LOB字段进行处理本文档主要介绍如何对LOB字段进行处理
oracle dbms_lob
NULL 博文链接:https://surfingforrest.iteye.com/blog/711612
NULL 博文链接:https://hackpro.iteye.com/blog/1845366
基于VC的Oracle LOB数据库访问技术.pdf
基于.NET的Oracle LOB数据库访问技术.pdf
最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。 blob字段直接用 select * from table_name where column like ‘%%'查找的时候是不能实现...
ORACLELOB大对象处理[定义].pdf
NULL 博文链接:https://sosuny.iteye.com/blog/446112