2011-03-03 14 views
3

私はテーブルを照会するためにPreparedStatementを使用しています。残念ながら、私はそうすることができませんでした。Javaはパラメータ付きの準備文を実行しません

私のコードは次のと同じくらい簡単です:

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。しかし、私はあなたがこのテーブルが確かに存在することを保証することができます。

UPDATE

撮影。私は間違ったSQLを編集しました。今は成功です。あなたの時間のためのthx。

答えて

2

表示されたSQLから値をバインドしてSQLプロンプトまたはSQLエディタから出力するとこのエラーが発生しますか? クエリの最後またはクエリのどこにでもセミコロン( ";")がないことを確認してください。

+0

..このようにそれを与えてみてください、との結果を得ました。それはちょうど、javaはパラメータを置き換えないと思われる。疑問符の付いたコードをそのまま実行します。 –

+2

@Piyush私のコードを更新しました。最後にセミコロンを省略すると、新しいエラーがスローされます。 –

+1

ここに関連するJDBCコードを掲載できますか? JDBCから間違ったデータベースに接続している可能性があります。確認してください。また、schemaName.tableNameのように選択 .favoritefood favoritefoods –

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

あなたはちょうど別の変数の権利にSQLを保つ?私はこれを行い、同じエラーが発生します。 –

関連する問題