SQL CODE -104(错误)代表什么?

时间:2013-02-22 10:39:15

标签: java sql db2 sqlcode jcc

我正在通过jcc执行SQL查询来运行报告。当我打开程序的错误日志文件并检查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%左右,你可以更好地看到查询。

非常感谢:)

4 个答案:

答案 0 :(得分:14)

你在这一行的末尾有一个逗号(你不应该在那里):

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

以下行也有同样的问题。

答案 1 :(得分:3)

通常,此SQL错误代码表示您已插入一些额外字符,例如',''('')'或者那种。检查跟踪中的完整查询将有助于在Java程序中编写Sql查询的人员,因为我花了大约2个小时才能发现我的查询中有额外的')'。

答案 2 :(得分:0)

在我的案例中问题稍有不同我想加入两个表,然后将数据从Table2复制到Table1各自的列 我的查询(DB2) 更新Table1 T1,表2 T2 设置T1.DEST_COLMN = T2.SRC_COLMN 其中T1.ID = T2.ID

正确查询 更新Table1 T1 设置T1.DEST_COLMN =(从表2 T2中选择SRC_COLMN                        其中T1.ID = T2.ID)

答案 3 :(得分:0)

我崩溃了这个错误,因为我的一个查询构建器参数为null,查询类似于&#34; .. OrderType =&#39; CM&#39;和null&#34;。