In Oracle, eine einfache Datentabelle gegeben:Oracle fusionieren Konstanten in einzelne Tabelle
create table data (
id VARCHAR2(255),
key VARCHAR2(255),
value VARCHAR2(511));
nehme an, ich will „einfügen oder aktualisieren“ einen Wert. Ich habe etwas wie:
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');
Gibt es einen besseren Weg als das? Dieser Befehl scheint die folgenden Nachteile zu haben:
- Alle wörtlichen Bedarf zweimal eingegeben werden (oder zweimal über Parametereinstellung hinzugefügt)
- Die „mit Dual“ Syntax Hacky
scheint Wenn dies der beste Weg, muss man jeden Parameter in JDBC zweimal einstellen?
Wenn Sie 10g verwenden, ist "DUAL" noch weniger ein Hack. davor war es ein echter Tisch, in 10g ist es nicht. –