我正在通过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时,我发现它意味着查询中存在非法符号。我能找到什么来找到这个非法的符号?
这是查询
很抱歉这个小字体,但如果你缩放200%左右,你可以更好地看到查询。
非常感谢:)
答案 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;。