Подтвердить что ты не робот

Что может представлять SQL CODE -104 (ошибка)?

Я выполняю 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, я узнал, что это означает, что в запросе есть незаконный символ. Что я могу найти, чтобы найти этот незаконный символ?

Это запрос

enter image description here

Извините за маленький шрифт, но если вы увеличиваете 200% или около того, вы можете лучше видеть запрос.

Большое спасибо:)

4b9b3361

Ответ 1

У вас есть запятая (где не следует) в конце этой строки:

AND Tick.STATE IN (1,2,3,10,1),

Следующая строка также имеет ту же проблему.

Ответ 2

Как правило, этот код ошибки SQL означает, что вы вставили некоторые дополнительные символы, такие как ',' или '(' или ')' или вроде. Проверка полного запроса в трассировке поможет людям, которые пишут запросы Sql внутри Java-программы или тому подобное, поскольку мне потребовалось около 2 часов, чтобы выяснить, что у меня есть дополнительный ")" в моем запросе.

Ответ 3

В моем случае проблема была немного иной, я хотел соединить две таблицы, а затем скопировать данные из таблицы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)

Ответ 4

Я разбил эту ошибку, потому что один из моих параметров построителя запроса был нулевым, а запрос был что-то вроде ".. OrderType =" CM "и null".