【发布时间】:2012-02-15 13:49:39
【问题描述】:
我想使用 db2 合并语句将其作为来自 jdbc 的语句提交。 我处于以下情况。我正在使用一个专有的持久层,我正在处理一个我不知道它是否已经持久化的实体,我想使用合并语句来插入或更新数据库上的一行。 可能吗? 假设我正在处理具有三列的 people 表:id, name, surname 并且我正在处理一个 id="5", name="chuck ", surname="norris" 我可以发出:
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)
但它不起作用。任何帮助,将不胜感激。 此外,有谁知道是否可以在准备好的语句中使用这样的语句,用“?占位符以便使用 setXXX() 方法将它们设置为准备好的语句?
谢谢
谢谢 菲尔
【问题讨论】: