У меня есть несколько случайных операторов обновления, такие как это:UPSERT несколько операторов одновременно Oracle SQL
UPDATE tab1 SET a = 'a', b = 'b' WHERE id = 1;
UPDATE tab2 SET c= = 'c' WHERE id = 2;
UPDATE tab1 SET a = 'a', d = 'd' WHERE id = 3;
.
.
.
UPDATE tab1 SET a = 'a', b = 'b' WHERE id = 100;
Мне нужно upsert эти несколько операторов внутри PLSQL. Я нашел синтаксис upsert по одному:
begin
insert into tab1 (a,b);
values ('a', 'b');
exception
when dup_val_on_index then
UPDATE tab SET a = 'a', b = 'b' WHERE id = 1;
end
Меня не беспокоит параллелизм, у меня есть много инструкций обновления мне нужно вставить сразу (сразу, потому что я использую Oracle APEX и имеют только один пл/sql-лист, чтобы сделать все это).
TAB1:
| ID | A | B | D |
TAB2:
| ID | D |
Использование ** [MERGE] (http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9016.htm) ** – lad2025
@ lad2025 Я просмотрел слияние, но, похоже, это для обновление нескольких таблиц, имеющих отношения? Кажется, что существует соединение между двумя таблицами, которых у меня нет. – user2924127
«Слияние» может решить вашу проблему. просто укажите структуру таблицы и данные выборки. – RubahMalam