Я пытаюсь реализовать решение, которое я нашел здесь от Michiel de Mare, чтобы обновить несколько записей одной (желательно простой -в-синтаксическом-смысле) запрос. Пример кода, который я пытаюсь изучить, выглядит так:
INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12) ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);
Я использую Oracle (и пока плохо разбираюсь в SQL-запросах).
Основываясь на некотором динамическом содержимом, я объединил свой запрос, аналогичный приведенному выше. Он может различаться по длине в зависимости от того, сколько записей я обновляю, но это пример сгенерированного мной запроса:
INSERT INTO my_table (question_id,ug) VALUES (30,0),(31,1) ON DUPLICATE KEY UPDATE ug=VALUES(ug)
В приведенном выше запросе возникает эта ошибка:
Native message: ORA-00933: SQL command not properly ended
Я имею дело с системой управления контентом, в которой есть вызов функции, выполняющий запросы; в этих рамках. Я не думаю, что это уместно, но мне никогда не приходилось ставить ';' однако в конце запросов я пробовал использовать точку с запятой и без нее.