ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-12838: cannot read/modify an object after modifying it in parallel

ORA-12838: cannot read/modify an object after modifying it in parallel

原创 Linux操作系统 作者:taogchan 时间:2012-04-22 11:31:29 0 删除 编辑
如果用了insert /*+ append */ into table as select .. from table 这样的操作来insert,必须在操作后commit,或是rollback,不然就不能再insert /*+ append */ into table as select .. from table 。
ORACLE报出错误如下:
ORA-12838: cannot read/modify an object after modifying it in parallel
解释如下:
ORA-12838 cannot read/modify an object after modifying it in parallel
Cause: Within the same transaction, an attempt was made to add read or modification statements on a table after it had been modified in parallel or with direct load. This is not permitted.
Action: Rewrite the transaction, or break it up into two transactions: one containing the initial modification and the second containing the parallel modification operation
 
 
insert /*+ append */ into table  操作对于这个表的锁级为6,而insert 操作对这个锁级为3 ,在同一session下,执行了上面这个操作,没有提交/回滚事务,然后有对table进行 select....等操作就会报上面的错误
我的过程中 跑了3.55个小时后 很郁闷哦!
if
 insert  /*+append*/ into table a
  select * from  c;
insert /*+append*/ into table a
 select * from b
 
end if

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22392018/viewspace-721942/,如需转载,请注明出处,否则将追究法律责任。

下一篇: oracle笔记
请登录后发表评论 登录
全部评论

注册时间:2009-08-28

  • 博文量
    200
  • 访问量
    1183477