oracle 教训,Oracle LOB字段操作的一点教训

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.

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,改成

Sql代码 conn.setAutoCommit(false);

......

LOB操作

.....

conn.commit();

conn.setAutoCommit(true);

conn.setAutoCommit(false);

......

LOB操作

.....

conn.commit();

conn.setAutoCommit(true);

就可以了。

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

相关文档:

学习Oracle DBA也半个多学期了,今天猛然才发现,原来我的书还是很新的,上课操作时候也只是知道大概怎么做,但是要真的全部自己做,而不去翻书还是有一定的难度的,所以呢,今天开始将DBA从头复习一遍,同时再操作一遍。

第一章,学的是Oracle的体系结构� ......

ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.  因此,在创建对象之前,首先要分配存储空间.

分配存储,就要创建表空间:

创建表空间� ......

首先计算机上必须安装oracle,并配置好服务名

安装oracle的过程中一般会要求建立一个数据库,也可以之后再创建

这个后面有一个 数据库配置助理 (创建修改数据库的,一般密码创建要求字母开头,大于7位啥的)和一个net配置助理(添加或者修改一个数据库服务名),一般用plsql developer远程操作oracle数据库 ......

步骤:

1.首先,你要有一张表!

CREATE TABLE example(

ID Number(4) NOT NULL PRIMARY KEY,

NAME VARCHA ......

參考:http://blog.csdn.net/rainnyzhong/archive/2009/01/09/3740660.aspx

作者:Rainny

日期:2009-1-8

创建测试表:

create table test(c_id   varchar2(20));

插入测试数据:

insert into test values ('1234');

insert into test values ('45678');

insert into test values ('-12 ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值