java SQL合并以更新值或将值插入到同一个表中
"MERGE INTO NT_PROPERTY ntProp USING ( " +
"SELECT * FROM NT_PROPERTY ) " +
"VALUES " +
"('minDPTObjectId'," + minDPTObjectId + ", 'Starting DPT Object Id') " +
"('maxDPTObjectId', " + maxDPTObjectId + ", 'Ending DPT Object Id') " +
"vt (NAME, VALUE, NOTE) " +
"ON ( ntProp.NAME = vt.NAME ) " +
"WHEN MATCHED THEN " +
"UPDATE SET VALUE = vt.VALUE "+
"WHEN NOT MATCHED THEN " +
"INSERT (NAME, VALUE, NOTE) VALUES (vt.NAME, vt.VALUE, vt.NOTE)";
好吧,我得到了一个缺少关键字的错误,而且不知道究竟是什么,还有没有其他方法可以让它不那么笨拙
非常感谢您的帮助
# 1 楼答案
问题是您的合并语法不正确。您的声明采用以下形式:
但它的形式应该是:
为什么在你的
using
和on
子句之间有VALUES
和vt
子句?这是错误的语法。此外,虽然您可以在using
子句中使用select * from tablename
,但您可以直接使用tablename,因为您选择的是所有列和所有行# 2 楼答案