powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Merge
4 сообщений из 4, страница 1 из 1
Merge
    #39251746
Нужен примерно такой merge:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
merge into tab1 t1
using tab2 t2
 on (t1.id = t2.id
      and t2.num_field > t1.num_field)
when matched then
  update set t1.num_field = t2.num_field
when not matched then
 insert -- но только если такого id вообще нет.


При этом т.к. num_field есть в условии, то апдейтить это поле оракл не дает.
Т.е. рабочий мердж такой:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
using tab2 t2
 on (t1.id = t2.id)
when matched then
  update set t1.num_field = t2.num_field
   where t2.num_field > t1.num_field
when not matched then
 insert ....


Можно ли написать мердж так, чтобы num_field участвовал в отборе в условии ON и при этом апдейтился
Плюс инсерт, если вообще не нашлось такого id (без учета num_field)?
...
Рейтинг: 0 / 0
Merge
    #39251764
Другими словами, можно ли
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
merge into tab1 t1
using tab2 t2
 on (t1.id = t2.id)
when matched then
  update set t1.num_field = t2.num_field
   where t2.num_field > t1.num_field
when not matched then
 insert ....


переписать в аналогичный merge, где бы условие t2.num_field > t1.num_field было в ON?
...
Рейтинг: 0 / 0
Merge
    #39251783
Тормоз перестройки,

сделай подзапросы с продублированными полями.
а смысл в on, id не является ключом?
...
Рейтинг: 0 / 0
Merge
    #39254514
joiner_plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
merge into tab1 t1
using (SELECT z2.id, .. FROM tab2 z2 JOIN tab2 z1 ...  and z2.num_field > z1.num_field) t2
 on (t1.id = t2.id)
when matched then
  update set t1.num_field = t2.num_field
when not matched then
 insert
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Merge
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]