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

时间:2021-08-17 10:13:29

insert /*+ append */ into my_all_objects  select * from my_all_objects;

select * from my_all_objects;

以上代码引起了以下错误:

ORA-12838: cannot read/modify an object after modifying it in parallel
12838. 00000 -  "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或update,delete,insert操作就会报上面的错误。