Я не могу понять, что не так с этим утверждением слияния.Это работало нормально, тогда я добавил COL2 в утверждение, следуя той же схеме, в которую верил, но я получаю эту ошибку, которая, кажется, указывает на то, что она возникает из-за псевдонимов таблицы?
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement
"MERGE INTO MY_TABLE RBX[*] USING ( SELECT ? COL1,? COL2,? COL3,? COL4,
? COL5, ? COL6,? UPDATED_TS FROM DUAL) R ON (RBX.COL1 = R.COL1 AND
RBX.COL5 = R.COL5) WHEN MATCHED THEN UPDATE SET RBX.COL3 = R.COL3,
RBX.COL4 = R.COL4, RBX.COL6 = R.COL6, RBX.COL2 = R.COL2,
RBX.UPDATED_TS = R.UPDATED_TS WHEN NOT MATCHED THEN INSERT(COL1, COL2,
COL3, COL4, COL5, COL6, UPDATED_TS) VALUES(R.COL1, R.COL2, R.COL3,
R.COL4, R.COL5, R.COL6, R.UPDATED_TS)";expected "., (, KEY, VALUES, (,
WITH, SELECT, FROM";SQL statement:
Утверждение таково:
MERGE INTO MY_TABLE RBX
USING ( SELECT ? COL1,? COL2,? COL3,? COL4, ? COL5, ? COL6,? UPDATED_TS
FROM DUAL) R
ON (RBX.COL1 = R.COL1 AND RBX.COL5 = R.COL5)
WHEN MATCHED THEN
UPDATE SET RBX.COL3 = R.COL3, RBX.COL4 = R.COL4, RBX.COL6 = R.COL6,
RBX.COL2 = R.COL2,
RBX.UPDATED_TS = R.UPDATED_TS
WHEN NOT MATCHED THEN
INSERT(COL1, COL2, COL3, COL4, COL5, COL6, UPDATED_TS) VALUES(R.COL1,
R.COL2, R.COL3, R.COL4, R.COL5, R.COL6, R.UPDATED_TS) [42001-196]
Я склонен к случайной слепоте, но для меня это утверждение выглядит правильным.Возможно ли, что ошибка может быть результатом чего-то другого?Стол накрыт и т.д?
В частности, кто-то может объяснить, что это значит:
";expected "., (, KEY, VALUES, (, WITH, SELECT, FROM";