web-dev-qa-db-ja.com

SQL CODE -104(エラー)は何を表しますか?

レポートを実行するために、jccを介してSQLクエリを実行しています。プログラムのエラーログファイルを開いてSQLクエリを調べたところ、すべてが問題ないようです(余分なまたは不足している角かっこ、コンマなどはなく、構文は良好です)が、実行するとこのエラーが発生します:

[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%程度ズームすると、クエリをよりよく見ることができます。

どうもありがとう :)

13
Bernice

この行の最後にコンマがあります(するべきではありません):

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

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

14
Bohemian

通常、このSQLエラーコードは、次のような余分な文字を挿入したことを示します。 「、」 または '(' または ')' または種類。トレース内の完全なクエリを確認すると、JavaプログラムなどでSqlクエリを作成する人に役立ちます。追加の ' 'クエリ内。

4
ramakrishnan

クエリビルダーパラメーターの1つがnullで、クエリが ".. OrderType = 'CM' and null"のようなものだったため、このエラーがクラッシュしました。

0

私の場合、問題は少し異なり、2つのテーブルにデータをコピーしてから、Table2からTable1のそれぞれの列にデータをコピーしました。MyQuery(DB2)更新Table1 T1、Table2 T2 set T1。

正しいクエリの更新Table1 T1 set T1.DEST_COLMN =(Table2 T2からSRC_COLMNを選択し、T1.ID = T2.ID)

0
user3572104