Java Синтаксис H2 Слияние SQL Ошибка синтаксиса - PullRequest
0 голосов
/ 03 июня 2018

Я не могу понять, что не так с этим утверждением слияния.Это работало нормально, тогда я добавил 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";
...