2014-09-11 2 views
0

У меня есть этот запрос.ORA-01779: не удается изменить столбец, который сопоставляется с таблицей, не содержащей ключа, при обновлении связанных таблиц

update 
(
select pt.poid_id0, umt.plan_id 
from norie.plan_t_test pt 
join norie.UAS_MAPPING_TEST umt on (pt.poid_id0 = umt.plan_id) 
) 
set plan_id = poid_id0 
where poid_id0 <> plan_id; 

но ORA-01779 дисплеи. Пожалуйста помоги.

+1

показать схему таблицы соответствующих таблиц – emaillenin

+0

Вы смогли получить обновление для работы? – paqogomez

+0

да, спасибо. :) –

ответ

0

Обновление запроса всегда сложно. Попробуйте вместо этого слить.

MERGE INTO uas_mapping_test t1 
USING 
( 
    select pt.poid_id0, umt.plan_id 
    from norie.plan_t_test pt 
    join norie.UAS_MAPPING_TEST umt on (pt.poid_id0 = umt.plan_id) 
) ta ON poid_id0 <> plan_id 
WHEN MATCHED THEN UPDATE 
set plan_id = poid_id0 
+0

update table1 set col3 = (выберите col1 из таблицы2, где key2 = table1.key1) где col3 <> (выберите col1 из таблицы2, где key2 = table1.key1); –