I have a local table, CORE_WORKLOAD, and a remote table, LKUP_WBS1.
CORE_WORKLOAD has columns:
wbs1 - the row's primary key value
obs_fg - a number (usually 0 or 1) indicating whether or not the wbs1 is obsolete
LKUP_WBS1 has columns:
wbs1 - the row's primary key value
legacy_pron - either null, or a wbs1 indicating that is a replacement for another WBS1
When I try executing this:
UPDATE core_workload c
SET obs_fg = 1
WHERE c.obs_fg = 0
AND EXISTS
(
SELECT c2.wbs1
FROM core_workload c2
JOIN lkup_wbs1@MY_EXTERNAL_LINK.WORLD wbs1
ON wbs1.wbs1 = c2.wbs1
WHERE c2.obs_fg = 0
AND wbs1.legacy_pron = c.wbs1
);
COMMIT;
Oracle throws:
ORA-02050: transaction 4.2.109159 rolled back, some remote DBs may be in-doubt
ORA-02051: another session or branch in same transaction failed or finalized
Note that when I replace the first two lines with "SELECT * FROM core_workload c", the query runs properly.
Both the local and remote databases have 11.2.0.2.0
Any idea as to what is causing this and/or how to fix it?
Edited by: Donbot on Oct 24, 2011 11:14 AM