Raj*_*aju 5 db2 merge using token
我尝试了以下几种变体,但我仍然遇到错误.任何方法来解决这个问题.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'
Run Code Online (Sandbox Code Playgroud)
错误:在""后面找到意外的令牌"SRC".预期的令牌可能包括:"(".SQLSTATE = 42601
SQLState:42601 ErrorCode:-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'
Run Code Online (Sandbox Code Playgroud)
错误:在""之后使用保留字"SELECT"无效.预期的代币可能包括:"价值".SQLSTATE = 42601
SQLState:42601 ErrorCode:-199
不幸的是(我从来不明白为什么),在DB2 for z/OS中,你不能使用表作为源MERGE,你只能使用VALUES子句.此外,如果要合并多行,则必须使用主机变量数组,并指定数组中的值数.
MERGE INTO TRGT t
USING (VALUES (:param1, :param2) FOR :paramNumRows) s
ON (t.ACCTID=s.ACCTID)
WHEN MATCHED THEN
UPDATE SET MyFlag = 'Y'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4355 次 |
| 最近记录: |