向数据库插入数据的问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:14:55
我用JDBC向oracle插入数据,SQL代码如下:
t1=st.executeUpdate("insert into XSHZD_SPFLITEM(SSMD,SPFL,JZRQ,XSJE,XSBS)"+"VALUES('"+fdmc+"','"+spmc+"','"+jyrq+"','"+xsje+"','"+xsbs+"')");
t2=st.executeUpdate("insert into XSHZD_SBITEM(SSMD,SB,JZRQ,XSJE,XSBS)"+"VALUES('"+fdmc+"','"+sb+"','"+jyrq+"','"+xsje+"','"+xsbs+"')");

t3=st.executeUpdate("insert into XSHZD_BMSD(FDBH)"+"VALUES('"+fdmc+"')");
t4=st.executeUpdate("insert into XSHZD_BMSDITEM(FDBH,DEPTID,SD,XSJE)"+"VALUES('"+fdmc+"','"+partmc+"','"+jysd+"','"+xsje+"')");
运行报错:java.sql.SQLException: ORA-00917: 缺少逗号
请高手看看那个地方报错了

简单来做,用一个String变量来保存你的SQL语句,然后再输出到控制台,这样看起来就比较清晰了。而且可以复制该语句到sqlplus或者是其他数据库开发工具里面去执行,就能够看出哪里出问题了。如:
String sql="insert into XSHZD_SPFLITEM(SSMD,SPFL,JZRQ,XSJE,XSBS)"+"VALUES('"+fdmc+"','"+spmc+"','"+jyrq+"','"+xsje+"','"+xsbs+"')";
System.out.println(sql);
t1=st.executeUpdate(sql);

好乱,你为什么不在VALUES前面加一个空格?

兄弟我大概看了一下看不出来什么,我猜想可能哪些地方你把逗号用成中文的了。解决方法是你用数据库的客户端工具单独运行SQL语句,看看哪条语句不能运行。

调试,然后把sql放到相关的数据库里面执行。
这样看比较清晰点。
还有就是动态sql语句最好用PretaeStatment来给sql附动态数据。