将序列的下一个值与字符串连接起来

发布于 2025-01-04 06:11:26 字数 672 浏览 1 评论 0原文

我希望在与某个字符串值连接后将序列下一个值插入到表中。例如:案例12。这里“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:缺少逗号

任何人都可以告诉我上述问题的解决方案。任何帮助表示赞赏。

i want the sequence next value to be inserted into table after concatenating with some string value. eg: case12. Here 'case' will be the string and '12' will be the next sequence value.
i'm trying this code in my jsp page.

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(); 

but, i'm getting this error java.sql.SQLException: ORA-00917: missing comma

can anybody tell me the solution for above problem. Any help appreciated.!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

下雨或天晴 2025-01-11 06:11:26

如果可能的话,您应该更喜欢传递参数而不是动态组装 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(); 

If at all possible, you should prefer passing in parameters to dynamically assembling a SQL statement. So if you don't want "case" to be a hard-coded constant, it ought to be a bind variable.

Additionally, you don't want single-quotes around the CONCAT call. Something like this should work.

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(); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文