Oracle Multiple insert с разными значениями - PullRequest
0 голосов
/ 15 октября 2011

Как обновить несколько строк в базе данных Oracle с другим набором записей.

1 Ответ

2 голосов
/ 15 октября 2011

Это не красиво, но вы можете сделать это с MERGE INTO , используя UNION SELECT ... FRU DUAL в качестве источника слияния.

Дано:

create table writer (
    id integer primary key,
    name varchar2(255) not null
)

Вы можете сделать:

merge into writer dst
using (
    select 1 as id, 'Edward Luttwak' as name from dual
    union
    select 2 as id, 'Iain Sinclair' as name from dual
) src
on (dst.id = src.id)
when matched then update set dst.name = src.name
when not matched then insert (dst.id, dst.name) values (src.id, src.name);

Для каждой строки, которую вы хотите обновить, добавьте термин в объединение в подзапросе. Если вы знаете, что строки определенно являются обновлениями и никогда не вставляются, вы можете удалить целое предложение when matched.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...