繁体   English   中英

无法在 DB2 中合并

[英]Not able to merge in DB2

我正在尝试在 DB2 AS400 中执行 UPSERT(更新或插入)。 我遵循了 IBM 指定的准则。 但是,它说 MERGE 无效。 这是我的查询。

MERGE INTO myTable AS tab
USING (VALUES
    (123pk,'6','11','22','33',CURDATE())
) AS merge (TSPK,adf1,adf2,adf3,adf4,adf5)
ON tab.TSPK= merge.TSPK
WHEN MATCHED THEN
    UPDATE SET tab.TSPK= merge.TSPK,
               tab.adf1= merge.adf1,
               tab.adf2= merge.adf2,
               tab.adf3= merge.adf3,
              tab.adf4= merge.adf4
              tab.adf5= CURDATE()                  
WHEN NOT MATCHED THEN
    INSERT (TSPK,adf1,adf2,adf3,adf4,adf5 )
    VALUES (merge.TSPK, merge.adf1, merge.adf2,merge.adf3,merge.adf4,CURDATE())

它抛出的错误是

 [SQL0104] Token MERGE was not valid. Valid tokens: ( CL END GET SET CALL DROP FREE HOLD LOCK OPEN WITH ALTER. [SQL State=42601, DB Errorcode=-104] 

在 DB2 中,它表明我们可以使用 MERGE 关键字。 https://www.ibm.com/developerworks/community/blogs/SQLTips4DB2LUW/entry/merge?lang=en

在 IBM i 7.1 版上,合并被添加到 DB2 for i 中。 如果您使用的是较早的版本(6.1 或更早版本),不仅会停止服务,而且无法使用MERGE语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM