Ответ 1
У вас есть запятая (где не следует) в конце этой строки:
AND Tick.STATE IN (1,2,3,10,1),
Следующая строка также имеет ту же проблему.
Я выполняю SQL-запрос через jcc для запуска отчета. Когда я открыл файл журнала ошибок для программы и изучил SQL-запрос, все кажется прекрасным (никаких лишних или отсутствующих скобок, запятых и т.д. И синтаксиса хороши), однако при выполнении этой ошибки я получаю следующую ошибку:/p >
[Report.execute()] Ошибка DB2 SQL: SQLCODE = -104, SQLSTATE = 42601, SQLERRMC =,; ATE IN (1,2,3,10,1) ;, DRIVER = 4.12.55
Когда я исследовал SQLCODE, я узнал, что это означает, что в запросе есть незаконный символ. Что я могу найти, чтобы найти этот незаконный символ?
Это запрос
Извините за маленький шрифт, но если вы увеличиваете 200% или около того, вы можете лучше видеть запрос.
Большое спасибо:)
У вас есть запятая (где не следует) в конце этой строки:
AND Tick.STATE IN (1,2,3,10,1),
Следующая строка также имеет ту же проблему.
Как правило, этот код ошибки SQL означает, что вы вставили некоторые дополнительные символы, такие как ',' или '(' или ')' или вроде. Проверка полного запроса в трассировке поможет людям, которые пишут запросы Sql внутри Java-программы или тому подобное, поскольку мне потребовалось около 2 часов, чтобы выяснить, что у меня есть дополнительный ")" в моем запросе.
В моем случае проблема была немного иной, я хотел соединить две таблицы, а затем скопировать данные из таблицы2 в таблицу 1 соответствующий столбец Мой запрос (DB2) обновление Таблица 1 T1, Таблица 2 T2 set T1.DEST_COLMN = T2.SRC_COLMN где T1.ID = T2.ID
Правильный запрос обновить таблицу1 T1 set T1.DEST_COLMN = (выберите SRC_COLMN из таблицы 2 T2 где T1.ID = T2.ID)
Я разбил эту ошибку, потому что один из моих параметров построителя запроса был нулевым, а запрос был что-то вроде ".. OrderType =" CM "и null".