SQL Error: ORA-00600: internal error code [kkmupsViewDestFro_4], [0], [8024169], [], [], [], [], [], [], [], [], []
00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]"
*Cause: This is the generic internal error number for Oracle program
exceptions. This indicates that a process has encountered an
exceptional condition.
*Action: Report as a bug - the first argument is the internal error number
SQL had nothing special in it:
MERGE INTO TABLE1 a USING
(SELECT d.*
FROM TABLE2 d,
TABLE3 t
WHERE d.cola = t.cola
AND d.colb = t.colb
) b ON (a.col1 = b.col1 AND a.col2 = b.col2)
WHEN MATCHED THEN
UPDATE
SET ….
WHERE a.SCN <= b.SCN
WHEN NOT MATCHED THEN
INSERT
(
…
)
VALUES
(
…
)
(SELECT d.*
FROM TABLE2 d,
TABLE3 t
WHERE d.cola = t.cola
AND d.colb = t.colb
) b ON (a.col1 = b.col1 AND a.col2 = b.col2)
WHEN MATCHED THEN
UPDATE
SET ….
WHERE a.SCN <= b.SCN
WHEN NOT MATCHED THEN
INSERT
(
…
)
VALUES
(
…
)
I searched through Oracle My Support and found article ORA-600 [kkmupsViewDestFro_4] During Merge Statement (Doc ID 1181833.1):
One of the solution was to upgrade to Oracle 11.2.0.2 … Hmmmm … well, that didn’t work out :)
So I tried next one:
alter session set "_optimizer_join_elimination_enabled"=false;Nope … and next one:
alter session set "_fix_control"="7679164:OFF";Nope … and next one … recode the MERGE statement, for example add ROWNUM pseudo column:
MERGE INTO TABLE1 a USING
(SELECT d.*, ROWNUM
FROM TABLE2 d,
TABLE3 t
WHERE d.cola = t.cola
AND d.colb = t.colb
) b ON (a.col1 = b.col1 AND a.col2 = b.col2)
WHEN MATCHED THEN
UPDATE
SET ….
WHERE a.SCN <= b.SCN
WHEN NOT MATCHED THEN
INSERT
(
…
)
VALUES
(
…
)
(SELECT d.*, ROWNUM
FROM TABLE2 d,
TABLE3 t
WHERE d.cola = t.cola
AND d.colb = t.colb
) b ON (a.col1 = b.col1 AND a.col2 = b.col2)
WHEN MATCHED THEN
UPDATE
SET ….
WHERE a.SCN <= b.SCN
WHEN NOT MATCHED THEN
INSERT
(
…
)
VALUES
(
…
)
And voilĂ … it’s working!
I still don’t understand why we got the error in 1st place … should have been fixed in 11.2.0.2
No comments:
Post a Comment