gpt4 book ai didi

merge - DB2 MERGE 语句错误

转载 作者:行者123 更新时间:2023-12-04 18:43:21 25 4
gpt4 key购买 nike

我已经尝试了以下几种变体,但我仍然遇到错误。有什么办法可以解决这个问题。 DB2 10.1(DB2 for z/OS V10)

对于以下

MERGE INTO TRGT t
USING SRC s
ON (t.ACCTID=s.ACCTID AND s.SEQID=123)
WHEN MATCHED THEN
UPDATE SET
MyFlag = 'Y'

错误:
在“”之后发现了意外标记“SRC”。预期的标记可能包括:“(”。SQLSTATE=42601

SQLState:42601
错误代码:-104

但是对于以下
MERGE INTO TRGT t
USING (SELECT SEQID, ACCTID FROM SRC WHERE SEQID=123) s
ON (t.ACCTID=s.ACCTID)
WHEN MATCHED THEN
UPDATE SET
MyFlag = 'Y'

错误:
在“”之后使用保留字“SELECT”是无效的。预期的 token 可能包括:“VALUES”。 SQLSTATE=42601

SQLState:42601
错误代码:-199

最佳答案

不幸的是(我一直不明白为什么),在 DB2 for z/OS 中,您不能使用表作为 MERGE 的源。 ,您只能使用 VALUES 子句。另外,如果你想合并多行,你必须使用 host variable arrays , 并指定数组中的值数。

MERGE INTO TRGT t
USING (VALUES (:param1, :param2) FOR :paramNumRows) s
ON (t.ACCTID=s.ACCTID)
WHEN MATCHED THEN
UPDATE SET MyFlag = 'Y'

关于merge - DB2 MERGE 语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19734001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com