Вы можете сделать это, используя таблицу sysibm.sysdummy (или лучше назвать двойной из Oracle или более поздних версий DB2). Это будет очень хорошо работать для случая, когда вы хотите вставить строку, которая не существует, но вернуть 0, если она существует. AFAIK, вы не можете обновить строку с помощью этого метода, вам нужно использовать слияние для этого.
Для этого вам понадобится первичный или уникальный ключ на вашем столе. Вы вставляете в таблицу, выбирая все ваши значения из двойного в процессе, где в вашей таблице нет строки, соответствующей вашему первичному или уникальному индексу.
insert into table (column1, column2, column3, column4, column5)
select 'A', 'B', 'C', 'D', 'E' from dual where not exists (select * from table where column1 = 'A');
Я нашел это очень полезным для случаев, когда у меня есть несколько процессов, вставляющих в таблицу, и я не могу гарантировать порядок этих вставок. Вы можете определить, была ли вставка успешной или нет, по возвращаемому значению, которое будет равно 1, если оно прошло успешно, или 0, если не