14

レポートを実行するためにjccを介してSQLクエリを実行しています。プログラムのエラーログファイルを開いてSQLクエリを調べたところ、すべてが正常であるように見えました(角かっこ、コンマなどが余分にないか、欠落しておらず、構文は良好です)が、実行すると次のエラーが発生します。

[Report.execute()] DB2 SQLエラー:SQLCODE = -104、SQLSTATE = 42601、SQLERRMC = 、; ATE IN(1,2,3,10,1);、 DRIVER = 4.12.55

SQLCODEについて調べたところ、クエリに不正な記号が含まれていることがわかりました。この違法なシンボルを見つけるために何を探すことができますか?

これはクエリです

ここに画像の説明を入力してください

小さなフォントで申し訳ありませんが、200%程度ズームすると、クエリがよく表示されます。

どうもありがとう :)

4

4 に答える 4

17

この行の最後にコンマがあります (すべきでない場所):

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

次の行にも同じ問題があります。

于 2013-02-22T10:55:51.467 に答える
4

通常、この SQL エラー コードは、「,」「(」「)」などの余分な文字を挿入したことを示します。トレースで完全なクエリを確認すると、Java プログラムなどの内部で Sql クエリを作成する人に役立ちます。クエリに余分な ')' があることに気付くのに約 2 時間かかりました。

于 2015-08-24T12:03:03.117 に答える