Merge DB2合并语句错误

Merge DB2合并语句错误,merge,db2,token,using,Merge,Db2,Token,Using,我尝试了以下几个变体,但仍然会出现错误。想办法把这个修好。DB210.1(DB2forz/OSV10) 以下 MERGE INTO TRGT t USING SRC s ON (t.ACCTID=s.ACCTID AND s.SEQID=123) WHEN MATCHED THEN UPDATE SET MyFlag = 'Y' MERGE INTO TRGT t USING (SELECT SEQID, ACCTID FROM SRC WHERE SEQID=123) s ON (t.ACC

我尝试了以下几个变体,但仍然会出现错误。想办法把这个修好。DB210.1(DB2forz/OSV10)

以下

MERGE INTO TRGT t
USING SRC s
ON (t.ACCTID=s.ACCTID AND s.SEQID=123)
WHEN MATCHED THEN
UPDATE SET
MyFlag = 'Y'
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'
错误: 在“”之后发现意外标记“SRC”。预期的令牌可能包括:“(”.SQLSTATE=42601

SQLState:42601 错误代码:-104


但是,对于以下内容

MERGE INTO TRGT t
USING SRC s
ON (t.ACCTID=s.ACCTID AND s.SEQID=123)
WHEN MATCHED THEN
UPDATE SET
MyFlag = 'Y'
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”following“”的使用无效。预期的标记可能包括:“VALUES”。SQLSTATE=42601

SQLState:42601 错误代码:-199

不幸的是(我一直不明白为什么),在DB2forz/OS中,不能使用表作为源,只能使用VALUES子句。此外,如果要合并多行,必须使用,并指定数组中的值数

合并到TRGT t中
将(值(:param1,:param2)用于:paramNumRows)s
ON(t.ACCTID=s.ACCTID)
当匹配时
更新集MyFlag='Y'

@RajuRaju:如果我的回答回答了你的问题,请“接受”它(投票按钮下面应该有一个复选标记),你也可以对答案投赞成票。