Java不运行带参数的prepare语句

时间:2011-03-03 06:33:26

标签: java sql oracle prepared-statement ora-00942

我正在使用PreparedStatement查询我的表。不幸的是,我无法这样做。

我的代码就像这样简单:

PreparedStatement preparedStatement = connection.prepareStatement(
"Select favoritefood from favoritefoods where catname = ?");

preparedStatement.setString(1, "Cappuccino");                
ResultSet resultSet = preparedStatement.executeQuery();

抛出的错误是java.sql.SQLException: ORA-00911: invalid character。好像它永远不会通过给定的参数运行。

感谢您的时间。我花了一天时间来调试这个但仍然不成功。

如Piyush所述,如果我在语句结尾处省略分号,则会抛出新错误。 java.sql.SQLException: ORA-00942: table or view does not exist。但我可以向你保证,这张桌子确实存在。

更新

拍摄。我编辑了错误的sql。现在它成功了。你的时间。

2 个答案:

答案 0 :(得分:2)

如果尝试从显示的sql中绑定值并从SQL提示符或任何SQL编辑器中执行它,是否会出现此错误? 确保您的查询在其末尾或查询中的任何位置没有分号(“;”)。

答案 1 :(得分:0)

尝试这样做..

String query="Select favoritefood from favoritefoods where catname = ?";
preStat = conn.preparedStatement(query);  // conn is the connection object
preStat.setString(1,"Cappuccino");
ResultSet resultSet=preStat.executeQuery();