老是出错,请大家看看!解决了有分!

csdnluhao 2003-09-15 11:36:00
放在网页上的SQL语句如下:
SELECT DRACCNO,
SUM(CASE WHEN TRXCODE = '60024' THEN AMOUNT1 ELSE 0 END) AS 交易总金额1,
SUM(CASE WHEN TRXCODE = '2420' THEN AMOUNT1 ELSE 0 END) AS 交易总金额2,
SUM(CASE WHEN TRXCODE = '9018' THEN AMOUNT1 ELSE 0 END) AS 交易总金额3,
SUM(CASE WHEN TRXCODE = '2589' THEN AMOUNT1 ELSE 0 END) AS 交易总金额4,
SUM(CASE WHEN TRXCODE = '9026' THEN AMOUNT1 ELSE 0 END)
AS 交易总金额5
FROM NFSJN1
WHERE LEFT(cast(DRACCNO AS varchar), 8) = '0001' OR
LEFT(cast(DRACCNO AS varchar), 8) = '0266' OR
LEFT(cast(DRACCNO AS varchar), 8) = '0112' OR
LEFT(cast(draccno AS varchar), 8) = '0911'
GROUP BY DRACCNO

运行后结果显示:
C:\Tomcat4.1\work\Standalone\localhost\_\dzyh\fenxi_jsp.java:93: unclosed string literal
SQL="SELECT DRACCNO,
^



An error occurred at line: 33 in the jsp file: /dzyh/fenxi.jsp

Generated servlet error:
C:\Tomcat4.1\work\Standalone\localhost\_\dzyh\fenxi_jsp.java:94: unclosed character literal
SUM(CASE WHEN TRXCODE = '60024' THEN AMOUNT1 ELSE 0 END) AS 浜ゆ??婚?棰?1,
^



An error occurred at line: 33 in the jsp file: /dzyh/fenxi.jsp

Generated servlet error:
C:\Tomcat4.1\work\Standalone\localhost\_\dzyh\fenxi_jsp.java:94: unclosed character literal
SUM(CASE WHEN TRXCODE = '60024' THEN AMOUNT1 ELSE 0 END) AS 浜ゆ??婚?棰?1,
^



An error occurred at line: 33 in the jsp file: /dzyh/fenxi.jsp

Generated servlet error:
C:\Tomcat4.1\work\Standalone\localhost\_\dzyh\fenxi_jsp.java:95: unclosed character literal
SUM(CASE WHEN TRXCODE = '2420' THEN AMOUNT1 ELSE 0 END) AS 浜ゆ??婚?棰?2,
^



An error occurred at line: 33 in the jsp file: /dzyh/fenxi.jsp

Generated servlet error:
C:\Tomcat4.1\work\Standalone\localhost\_\dzyh\fenxi_jsp.java:95: unclosed character literal
SUM(CASE WHEN TRXCODE = '2420' THEN AMOUNT1 ELSE 0 END) AS 浜ゆ??婚?棰?2,
^



An error occurred at line: 33 in the jsp file: /dzyh/fenxi.jsp

Generated servlet error:
C:\Tomcat4.1\work\Standalone\localhost\_\dzyh\fenxi_jsp.java:96: unclosed character literal
SUM(CASE WHEN TRXCODE = '9018' THEN AMOUNT1 ELSE 0 END) AS 浜ゆ??婚?棰?3,
^



An error occurred at line: 33 in the jsp file: /dzyh/fenxi.jsp

Generated servlet error:
C:\Tomcat4.1\work\Standalone\localhost\_\dzyh\fenxi_jsp.java:96: unclosed character literal
SUM(CASE WHEN TRXCODE = '9018' THEN AMOUNT1 ELSE 0 END) AS 浜ゆ??婚?棰?3,
^



An error occurred at line: 33 in the jsp file: /dzyh/fenxi.jsp

Generated servlet error:
C:\Tomcat4.1\work\Standalone\localhost\_\dzyh\fenxi_jsp.java:97: unclosed character literal
SUM(CASE WHEN TRXCODE = '2589' THEN AMOUNT1 ELSE 0 END) AS 浜ゆ??婚?棰?4,

等等,全部说在数字上加的引号有问题,我也搞不清楚了,

...全文
124 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnluhao 2003-09-15
  • 打赏
  • 举报
回复
中午休息,下午再继续回复大家,多谢大家!
下午再来!
csdnluhao 2003-09-15
  • 打赏
  • 举报
回复
难道是在JSP中的语句没有被完全识别出来?
不老书生 2003-09-15
  • 打赏
  • 举报
回复
unclosed string literal
SQL="SELECT DRACCNO,
^
意思就是SQL="",而你得后半个括号没有,也就是没有关闭,unclosed,

应该写成

SQL="SELECT DRACCNO, "

SQL=SQL+"SUM(CASE WHEN TRXCODE = '60024' THEN AMOUNT1 ELSE 0 END) AS ABC, "
SQL=SQL+"SUM(CASE WHEN TRXCODE = '2420' THEN AMOUNT1 ELSE 0 END) AS BCD, "
SQL=SQL+"SUM(CASE WHEN TRXCODE = '9018' THEN AMOUNT1 ELSE 0 END) AS EFG,"
SQL=SQL+"SUM(CASE WHEN TRXCODE = '2589' THEN AMOUNT1 ELSE 0 END) AS GHI, "
SQL=SQL+"SUM(CASE WHEN TRXCODE = '9026' THEN AMOUNT1 ELSE 0 END) AS HIJ"
SQL=SQL+"FROM jsjyb"
。。。。。。。。。。
mtou 2003-09-15
  • 打赏
  • 举报
回复
CASE WHEN TRXCODE = '60024' THEN AMOUNT1 ELSE 0 END
应该变成:
CASE TRXCODE WHEN '60024' THEN AMOUNT1 ELSE 0 END
csdnluhao 2003-09-15
  • 打赏
  • 举报
回复
楼上的,怎么屏蔽掉,
能按照我的代码重新写一次给我看看,
我不怎么熟悉啊,
谢谢了!!
其他人也可以写一下,
别忘了,有分哦,
我刚才已经结了5个贴子了,
HPFYEAH 2003-09-15
  • 打赏
  • 举报
回复
to楼主
很简单,在网页中'符号会被认为是字符串引用符,当然不会作为sql语句中的一部分了,使用\屏蔽掉
csdnluhao 2003-09-15
  • 打赏
  • 举报
回复
to:knight_qmh(辉)
为什么要象你那样啊,
我还没有试行不行,但给个理由先可以吗?
我感觉你说的中间用“+”连着干吗呢?
csdnluhao 2003-09-15
  • 打赏
  • 举报
回复
代码中原版拷贝:
SQL="SELECT DRACCNO,
SUM(CASE WHEN TRXCODE = '60024' THEN AMOUNT1 ELSE 0 END) AS ABC,
SUM(CASE WHEN TRXCODE = '2420' THEN AMOUNT1 ELSE 0 END) AS BCD,
SUM(CASE WHEN TRXCODE = '9018' THEN AMOUNT1 ELSE 0 END) AS EFG,
SUM(CASE WHEN TRXCODE = '2589' THEN AMOUNT1 ELSE 0 END) AS GHI,
SUM(CASE WHEN TRXCODE = '9026' THEN AMOUNT1 ELSE 0 END) AS HIJ
FROM jsjyb
WHERE LEFT(cast(DRACCNO AS varchar), 8) = '0001' OR
LEFT(cast(DRACCNO AS varchar), 8) = '0266' OR
LEFT(cast(DRACCNO AS varchar), 8) = '0112' OR
LEFT(cast(draccno AS varchar), 8) = '0911'
GROUP BY DRACCNO";
rs = stmt.executeQuery(SQL);
csdnluhao 2003-09-15
  • 打赏
  • 举报
回复
声明中SQL=" SELECT * FORM TABLE1 WHERE "
我肯定加了引号的,


to楼上的,
我刚才把中文换成英文了,但还是出错,

knight_qmh 2003-09-15
  • 打赏
  • 举报
回复
如果SQL语句过长就用PreparedStatement
knight_qmh 2003-09-15
  • 打赏
  • 举报
回复
String sql = "SELECT DRACCNO, "+
"SUM(CASE WHEN TRXCODE = '60024' THEN AMOUNT1 ELSE 0 END) AS 交易总金额1, "+
"SUM(CASE WHEN TRXCODE = '2420' THEN AMOUNT1 ELSE 0 END) AS 交易总金额2, "+
"SUM(CASE WHEN TRXCODE = '9018' THEN AMOUNT1 ELSE 0 END) AS 交易总金额3, "+
"SUM(CASE WHEN TRXCODE = '2589' THEN AMOUNT1 ELSE 0 END) AS 交易总金额4, "+
"SUM(CASE WHEN TRXCODE = '9026' THEN AMOUNT1 ELSE 0 END) "+
"AS 交易总金额5 "+
"FROM NFSJN1 "+
"WHERE LEFT(cast(DRACCNO AS varchar), 8) = '0001' OR "+
"LEFT(cast(DRACCNO AS varchar), 8) = '0266' OR "+
"LEFT(cast(DRACCNO AS varchar), 8) = '0112' OR "+
"LEFT(cast(draccno AS varchar), 8) = '0911' "+
"GROUP BY DRACCNO";
csdnluhao 2003-09-15
  • 打赏
  • 举报
回复
将搜索语句减少一点,问题可能会解决,
我试了一次成功,后来改变代码又出问题了,
而且当用定义:String SQL=new String();
SQL=" "
会出错,但直接把SQL语句放在下面的可能就不会出错,rs = stmt.executeQuery(“ ”)
搞得莫名其妙,
请问你们写代码时遇到这样的问题吗?
假如SQL语句太长了,或者在SQL中运行SQL语句的时候“超时或过期”会显示上述的错误吗?

请进来的各位发表一下,如果上述有看不懂的请发贴,我解释,
谢谢!!

mtou 2003-09-15
  • 打赏
  • 举报
回复
SQL语言要放到一个字符串中
String sql="SELECT DRACCNO,
SUM(CASE WHEN TRXCODE = '60024' THEN AMOUNT1 ELSE 0 END) AS 交易总金额1,
......"

如果用的是sql server汉字前要用N,如:N'交易总金额1'
kaibinsj 2003-09-15
  • 打赏
  • 举报
回复
写得满经典得嘛!不是右边少了一个"吧?汗~~~
yaray 2003-09-15
  • 打赏
  • 举报
回复
声明String类型变量要保证有开始和结束的双引号

String sql = ".........key='0123' ......................................";
csdnluhao 2003-09-15
  • 打赏
  • 举报
回复
回来了,正准备按照上面的方法试呢,但愿有人帮我解决,100分就给你了,
有什么好的解决办法也可以再说,

其实大家看这么长的搜索语句,所以即使在数据库中运行语句也会经常遇到问题的

我咨询了一下,说是要建立一个非唯一索引,
也搞不清楚!!
squallzeng 2003-09-15
  • 打赏
  • 举报
回复
建议楼主用一个语句先取出你想要的数据后再取要好一点吧,不然这样子也太麻烦了吧。你找出来还不是为了显视和其它的小用处吗?没有必要自套自己吧?*-*
blue999star 2003-09-15
  • 打赏
  • 举报
回复
同意: wanderingbird(流浪鸟)

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧