Я хотел бы использовать оператор слияния db2, представив его как оператор из jdbc.
Я в следующем сценарии. Я работаю с проприетарным слоем персистентности и обрабатываю сущность, я не знаю, сохраняется ли она уже или нет, и я хотел бы использовать оператор слияния для вставки или обновления строки в базе данных.
Является ли это возможным?
Предположим, я работаю с таблицей people с тремя столбцами: id, name, фамилия , и я работаю с сущностью с id = "5", name = "chuck", Фамилия = "Норрис" Могу ли я выдать:
MERGE INTO people AS t
USING (select '5' as id, 'chuck' as name, 'norris' as surname from SYSIBM.SYSDUMMY1)As s
ON (t.id = s.id)
WHEN MATCHED THEN
UPDATE SET t.name=s.name, t.surmane=s.surname
WHEN NOT MATCHED THEN
INSERT
(id, name, surname)
VALUES (s.id, s.name, s.surname)
такое утверждение? Я пытаюсь сделать это, но я получил ошибку. Я не думаю, что разрешено использовать выбор после USING :
USING (select '5' as id, 'chuck' as name, 'norris' as surname from SYSIBM.SYSDUMMY1)As s
Я тоже пытался сделать:
USING VALUES('5','chuck','norris') AS s(id,chuck,norris)
но это не сработает. Любая помощь будет оценена.
Кроме того, кто-нибудь знает, возможно ли использовать такое утверждение в подготовленном утверждении, заменяя реальные значения, выраженные в части USING, на «?» заполнители для того, чтобы установить их для подготовленного оператора, используя методы setXXX ()?
Спасибо
Спасибо
Fil