Как преобразовать изменения, которые я сделал в наборе результатов для SQL запросов в Java? - PullRequest
2 голосов
/ 24 апреля 2011

Я сравниваю 2 набора результатов, и мне нужно обновить один набор результатов в соответствии с данными в другом. Я могу сделать это легко используя updateRow (или insertrow, если требуется). Но мне также нужно сгенерировать SQL-запрос (желательно с синтаксисом оракула) и добавить в SQL-файл, что дает мне возможность обновить его позже. Может кто-нибудь сказать мне элегантный способ сделать это?

1 Ответ

0 голосов
/ 25 апреля 2011

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

merge into t1
using t2
on (t2.id = t1.id)
when matched
then
    update
    set t1.col1 = t2.col1,
        t1.col2 = t2.col2,
        t1.col3 = t2.col3
when not matched
then 
    insert
    (t1.id, t1.col1, t1.col2, t1.col3)
    values
    (t2.id, t2.col1, t2.col2, t2.col3);

Следует отметить, что t2 можно заменить на оператор выбора, если ваши новые данные еще не сохранены в таблице вправильный формат.

Если это не то, что вы ищете, не могли бы вы уточнить, что вы имеете в виду (пример текущих данных и желаемого результата будет идеальным).

...