В Oracle, учитывая простую таблицу данных:
create table data (
id VARCHAR2(255),
key VARCHAR2(255),
value VARCHAR2(511));
Предположим, я хочу "вставить или обновить" значение. У меня есть что-то вроде:
merge into data using dual on
(id='someid' and key='testKey')
when matched then
update set value = 'someValue'
when not matched then
insert (id, key, value) values ('someid', 'testKey', 'someValue');
Есть ли лучший способ, чем это? Эта команда имеет следующие недостатки:
- Каждый литерал должен быть введен дважды (или добавлен дважды через параметр)
- Синтаксис "using dual" кажется hacky
Если это лучший способ, есть ли способ, связанный с необходимостью устанавливать каждый параметр дважды в JDBC?