Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 merge ora-38104, изменение только изменных, вставка недостающих.  [new]
печально вопрошающий
Guest
Есть две таблицы, скажем лямов 10 записей. Необходимо вставить недостающие записи,и изменить только корректированные записи родительской таблицы(t1). Запрос вида:
merge into t2 t2 
using(select * from t1) t1
on 
(t2.id = t1.id)
 when matched then
  update set t2.dv = t1.dv
   when not matched then
    insert (t2.id,t2.dv) values(t1.id,t1.dv)  

хорошо отрабатывает, но если полей много, то как проверить какие записи изменились и не нарваться на ora-38104? В условия проверки я не могу перечислить в строке on (t2.id = t1.id,...............) все поля которые надо изменить и соответственно провести update и insert. Спасибо.
23 фев 15, 16:55    [17301828]     Ответить | Цитировать Сообщить модератору
 Re: merge ora-38104, изменение только изменных, вставка недостающих.  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10051
merge
  into t2 
  using(
         select * from t1
        minus
         select * from t2
       ) t1
  on (t2.id = t1.id)
  when matched then
    update set t2.dv = t1.dv
  when not matched then
    insert(t2.id,t2.dv) values(t1.id,t1.dv)  
/


SY.
23 фев 15, 18:49    [17302138]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить