java执行sql报错 ora-00917 missing comma ,可是sql在后台打印出来的我贴在plsql中就可以执行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java执行sql报错 ora-00917 missing comma ,可是sql在后台打印出来的我贴在plsql中就可以执行相关的知识,希望对你有一定的参考价值。
调试bug的时候批量从excel表中取数据insert进数据库, 少数几条报错 missing comma,当把其中excel某个字段的长度缩短之后(这个字段在数据库定义中不超长),却可以执行。
String sql_a = "insert into t_zckp_xxb (zckp_id,gjrq,zckp_mc,yz,yzje,nzje,ljzj,zjnx,kmdm,syrq,jz,jggg,cqzz,bmmc,ddmc,fzr,dqdm,stz,yxbz,drpcls) values(";
sql_a = sql_a + "'"+zckp_id+"','"+gjrq+"','"+zckp_mc+"',"+yz+","+yzje+","+nzje+","+ljzj+","+zjnx+",'"+kmdm+"',";
sql_a = sql_a + "'"+syrq+"',"+jz+",'"+jggg+"','"+cqzz+"','"+bmmc+"','"+ddmc+"','"+fzr+"','"+dqdm+"','"+stz+"','1','"+drpcls+"'";
sql_a = sql_a + ")";
奇怪的是当我把sql最后的“)”与上一行合并时 程序也不报错了。。
String sql_a = "insert into t_zckp_xxb (zckp_id,gjrq,zckp_mc,yz,yzje,nzje,ljzj,zjnx,kmdm,syrq,jz,jggg,cqzz,bmmc,ddmc,fzr,dqdm,stz,yxbz,drpcls) values(";
sql_a = sql_a + "'"+zckp_id+"','"+gjrq+"','"+zckp_mc+"',"+yz+","+yzje+","+nzje+","+ljzj+","+zjnx+",'"+kmdm+"',";
sql_a = sql_a + "'"+syrq+"',"+jz+",'"+jggg+"','"+cqzz+"','"+bmmc+"','"+ddmc+"','"+fzr+"','"+dqdm+"','"+stz+"','1','"+drpcls+"')";
望达人解答!
我建议你 把每一条sql 都 打印出来对比一下
System.out.println(sql_a ); 打3条 分别看看 每一条 字符串是什么
然后 把你的 第二种情况 也弄进去 打印一下 .. 对比一下. 参考技术A 你这个是不是换行以后有空格,造成的。
一般这样的句子 换行以后有时候会有问题本回答被提问者采纳 参考技术B 你用prepareStatement试试看哦,你这么写看着累。
以上是关于java执行sql报错 ora-00917 missing comma ,可是sql在后台打印出来的我贴在plsql中就可以执行的主要内容,如果未能解决你的问题,请参考以下文章