2013-02-22 11 views
11

Wykonuję kwerendę SQL przez jcc, aby uruchomić raport. Kiedy otworzyłem plik dziennika błędów dla programu i sprawdziłem zapytanie SQL, wszystko wydaje się być w porządku (nie ma żadnych dodatkowych lub brakujących nawiasów, przecinków itp., A składnia jest dobra), jednak po wykonaniu otrzymuję ten błąd:Co może reprezentować SQL CODE -104 (błąd)?

[Report.execute()] błąd SQL DB2: SQLCODE = -104, SQLSTATE = 42601, SQLERRMC = ,; wew (1,2,3,10,1) ;, STEROWNIK = 04/12/55

Kiedy badałem SQLCODE, okazało się, że w zapytaniu znajduje się nielegalny symbol. Czego mogę szukać, aby znaleźć ten nielegalny symbol?

To zapytanie

enter image description here

Przepraszamy za maleńkim czcionki ale jeśli powiększać lub 200%, dzięki czemu można zobaczyć zapytania lepiej.

Thanks a lot :)

+0

Czy nie ma sensu publikowanie zapytania? Ktoś może rozpoznać twój symbol. – Bridge

+0

jest trochę długa, dlatego nie opublikowałem tego! Cóż, pozwól mi to uwzględnić, następnie – Bernice

+0

Dodałem zapytanie .. – Bernice

Odpowiedz

12

Masz przecinek (, gdzie nie powinien) na końcu tej linii:

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

Poniższy wiersz ma również ten sam problem.

+1

oh! przepraszam, wciąż jestem nowy! Myślałem, że to nie było złe! Dzięki za pomoc! – Bernice

+0

Prostsze niemożliwe !, dzięki! – Israelm

2

Generalnie ten kod błędu SQL oznacza, że ​​włożona jakieś dodatkowe znaki, takie jak „” lub «(» lub «)» lub rodzaj. Sprawdzanie kompletnego zapytania w śladzie pomoże osobom, które piszą kwerendy Sql w programie Java lub podobnym, ponieważ zajęło mi to około 2 godzin, aby dowiedzieć się, że mam dodatkowy ")" w moim zapytaniu.

0

w moim przypadku problemem było trochę inaczej chciałem optymalizuje dwie tabele, a następnie skopiować dane z Table2 do tabela1 odpowiedniej kolumnie mojej kwerendy (DB2) aktualizacja Tabela 1 T1, T2 Tabela 2 zestaw T1.DEST_COLMN = T2.SRC_COLMN gdzie T1.ID = T2.ID

Prawidłowe Zapytanie aktualizacja Tabela 1 T1 zestaw T1.DEST_COLMN = (select SRC_COLMN z Table2 T2 gdzie T1.ID = T2.ID)

0

rozbiłem ten błąd, ponieważ jeden z moich parametrów konstruktora kwerendy była zerowa i kwerendy było coś w stylu ".. OrderType =" CM "i null".

Powiązane problemy