Чтобы обновлять информацию, в DB2 for i (AS / 400) MERGE работает с середины 2010 года. Требуется текущая версия ОС.

ком с Sybase, который разрешает запросы с форматом: ЕСЛИ СУЩЕСТВУЕТ (), ТО, ... ИЛИ ..., КОНЕ, ЕСЛИ (или очень близко). Это мощное утверждение, которое позволяет: «если существует, то обновить, иначе вставить».

Я пишу запросы для DB2 на коробке IBM iSeries. Я видел ключевое слово CASE, но не могу заставить его работать. Я всегда получаю сообщение об ошибке: «Ключевое слово CASE не ожидается».

Образец:

IF EXISTS ( SELECT * FROM MYTABLE WHERE KEY = xxx )
THEN UPDATE MYTABLE SET VALUE = zzz WHERE KEY = xxx
ELSE INSERT INTO MYTABLE (KEY, VALUE) VALUES (xxx, zzz)
END IF

Есть ли способ сделать это против DB2 на IBM iSeries? В настоящее время я запускаю два запроса. Сначала выбор, затем мой код Java решает обновить / вставить. Я бы предпочел написать один запрос, так как мой сервер расположен далеко (через Тихий океан).

Ответы на вопрос(4)

Ваш ответ на вопрос