ORA-00911: 无效字符 :
别加 ; 号
sb.append("sql语句;");
改为:
sb.append("sql语句");
ORA-01006: 赋值变量不存在:
String query="select * from DM_MAP_"+mapIndex+" t where t.viewName='"+vName+"'";
System.out.println(query);
PreparedStatement pst=con.prepareStatement(query);
rs = pst.executeQuery();
System.out.println(query);
PreparedStatement pst=con.prepareStatement(query);
rs = pst.executeQuery();
执行是正确的。
使用绑定变量看看
String query="select * from DM_MAP_2 where VIEWNAME='?' ";
PreparedStatement pst=con.prepareStatement(query);
pst.setString(1, "T_2_2");
rs = pst.executeQuery();
PreparedStatement pst=con.prepareStatement(query);
pst.setString(1, "T_2_2");
rs = pst.executeQuery();
将会报错!:java.sql.SQLException: ORA-01006: 赋值变量不存在
要改成
String query="select * from DM_MAP_2 where VIEWNAME=? ";
PreparedStatement pst=con.prepareStatement(query);
pst.setString(1, "T_2_2");
rs = pst.executeQuery();
PreparedStatement pst=con.prepareStatement(query);
pst.setString(1, "T_2_2");
rs = pst.executeQuery();
将会正确执行!
本文介绍了如何解决Oracle数据库中常见的SQL错误,包括ORA-00911无效字符问题及ORA-01006赋值变量不存在的问题。通过示例展示了如何正确编写SQL语句以及如何使用PreparedStatement设置参数。
3444

被折叠的 条评论
为什么被折叠?



