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');
これよりも良い方法はありますか?このコマンドには、次の欠点があるようです。
- すべてのリテラルは 2 回入力する必要があります (またはパラメーター設定で 2 回追加する必要があります)。
- 「デュアルを使用する」構文はハックのようです
これが最善の方法である場合、JDBC で各パラメーターを 2 回設定する必要があることを回避する方法はありますか?