我希望在连接一些字符串值后将序列下一个值插入表中。例如:case12。这里'case'将是字符串,'12'将是下一个序列值。 我正在我的jsp页面中尝试这段代码。
String name=request.getParameter("name").toString();
String pwd=request.getParameter("pass").toString();
out.print(name+" and "+pwd);
String add="case";
PreparedStatement ps = connect.prepareStatement("insert into test(caseid,userid,pass) values('CONCAT('"+add+"',test_seq.nextval)',?,?)");
ps.setString(1,name);
ps.setString(2,pwd);
ps.executeUpdate();
connect.commit();
connect.close();
但是,我收到此错误java.sql.SQLException: ORA-00917: missing comma
任何人都可以告诉我上述问题的解决方案。任何帮助表示赞赏。!!
答案 0 :(得分:2)
如果可能的话,您应该更喜欢传入参数来动态组装SQL语句。因此,如果您不希望“case”成为硬编码常量,那么它应该是一个绑定变量。
此外,您不希望在CONCAT
电话周围使用单引号。这样的事情应该有效。
String name=request.getParameter("name").toString();
String pwd=request.getParameter("pass").toString();
out.print(name+" and "+pwd);
String add="case";
String sqlStmt = "insert into test(caseid,userid,pass) values(CONCAT(?,test_seq.nextval),?,?)";
PreparedStatement ps = connect.prepareStatement(sqlStmt);
ps.setString(1,add);
ps.setString(2,name);
ps.setString(3,pwd);
ps.executeUpdate();
connect.commit();
connect.close();