Tuesday, August 19, 2014

Mutating PARALLEL Operation

Table T1 has parallel parameter set to DEFAULT, so parallel operation was running

INSERT /*+append*/ INTO T1
SELECT * FROM T2
         AND NOT EXISTS (
                        SELECT 'x'
                          FROM T1 inn_t1
                         WHERE T2.id= inn_t1.ih_id
                           );

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.


My Solution for this Problem – I removed the /*append*/ hint, because you cannot query a table after direct pathing into it until you commit

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:1211797200346279484

No comments:

Post a Comment