浏览 3950 次
锁定老帖子 主题:Oracle LOB字段操作的一点教训
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-15
今天有个功能需要对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.
错误二: 出现这个问题的原因是Connection 的 autoCommit属性值为true,改成 conn.setAutoCommit(false); ...... LOB操作 ..... conn.commit(); conn.setAutoCommit(true);
就可以了。
另外,注意第一步的select时,不要select出非LOB的字段,并且,如果一张表有多个LOB字段,操作顺序也最好按照表里的字段顺序来操作,否则也可能出错。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |