无法在DB2中合并

时间:2017-09-24 10:25:16

标签: sql db2 ibm-midrange db2-400

我试图在DB2 AS400中进行UPSERT(更新或插入)。我遵循了IBM指定的指导原则。但是,它表示MERGE无效。这是我的询问。

Dim allDiagnosis = txtDiagnosis.Items.
                                Cast(Of Object)().
                                Select(Function(item) item.ToString())
Dim diagnosis As String = String.Join(", ", allDiagnosis)

它抛出的错误是

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())

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

1 个答案:

答案 0 :(得分:1)

在IBM i版本7.1上将DB2添加到DB2 for i中。如果您使用的是较早版本(6.1或更早版本),则不仅会停止使用,而且您无法使用MERGE声明。