2013-06-24 2 views
0

Я новичок в merge, поэтому этот вопрос может показаться слишком тупым.pl sql. 0 строк объединены

Я бегу

MERGE INTO regions r 
    USING regions_temp t 
    ON (r.id_region = t.id_region) 
    WHEN NOT MATCHED THEN INSERT (r.id_region, r.region_name) 
    VALUES (t.id_region, t.region_name); 

Перед тем, как выполнить команду таблицы имеют следующие записи (id_region, REGION_NAME):

Регионы:

1 1 Kiev 
2 2 Asia 
3 3 Australia 
4 4 South America 
5 5 Africa 

Regions_temp:

1 1 
2 2 Asia 
3 3 Australia 
4 4 South America 

Команда выполняется успешно, но в нижней части окна указывается 0 строк объединены, и никакие записи не объединены.

Небольшая помощь?

ответ

0
MERGE INTO regions r 
    USING regions_temp t 
    ON (r.id_region = t.id_region) 
    WHEN MATCHED THEN update set r.region_name = t.region_name 

является то, что я на самом деле нужен

0

Согласно merge_insert_clause documentation:

merge_insert_clause определяет значения для вставки в столбец таблицы назначения, если условие пункта ON ложно.

Поскольку нет записей в Regions_temp которых id_region не соответствуют записи в Regions, нет ни одной строки, которые будут объединены.