java.sql.SQLSyntaxErrorException:ORA-00936:即使没有丢失,表达式也会丢失

时间:2019-11-23 21:21:08

标签: sql database oracle oracle11g

在以下语句中,我收到 java.sql.SQLSyntaxErrorException:ORA-00936:缺少表达式。我在任何地方都看不到任何错字或逗号。为什么我会收到此错误?

rs = st.executeQuery("select password from logininfo where username = " + uname);

其中uname是一个字符串变量。

1 个答案:

答案 0 :(得分:0)

您可能会收到错误消息,可能是因为uname的值为空(零长度)字符串,从而使您的数据库服务器尝试运行查询...

select password from logininfo where username =

...这很好...在=运算符之后缺少表达式。

正如评论者已经指出的那样,使用参数(也称为“绑定变量”,就某些数据库服务器而言),即执行语句...

select password from logininfo where username = ?

...与绑定uname变量的值绑定到查询的第一个参数。