在以下语句中,我收到 java.sql.SQLSyntaxErrorException:ORA-00936:缺少表达式。我在任何地方都看不到任何错字或逗号。为什么我会收到此错误?
rs = st.executeQuery("select password from logininfo where username = " + uname);
其中uname是一个字符串变量。
答案 0 :(得分:0)
您可能会收到错误消息,可能是因为uname
的值为空(零长度)字符串,从而使您的数据库服务器尝试运行查询...
select password from logininfo where username =
...这很好...在=
运算符之后缺少表达式。
正如评论者已经指出的那样,使用参数(也称为“绑定变量”,就某些数据库服务器而言),即执行语句...
select password from logininfo where username = ?
...与绑定将uname
变量的值绑定到查询的第一个参数。