2012-03-15 18 views
0

で実行した場合、同じクエリが行を返すにもかかわらず、私は多少このようなコードを使用してPreparedStatementを使用してDBから行を取得しようとしています動作しませんTOADを実行すると、次の行が返されます。準備書は、ヒキガエル

select * from abc where a='x' and b='y' and c='z'; 

私はここで間違っていますか? (where句の3番目の条件はcharです)。

+6

zまたはZ?なぜ 'preparedStatement.setString(3、" z ");'を使わないのですか? –

+0

クラス –

+2

にインポートされた接続関連のコードとライブラリを書いてください。「prepared statement not working」と言ったら、エラーが出るのですか、結果が得られないということですか? – codeulike

答えて

1

あなたのプリペアドステートメントからあなたは相当やっているのに対し、2つのクエリは、異なるヒキガエルにあなたが

select * from abc where a='x' and b='y' and c='z' 

を発行している:

select * from abc where a='x' and b='y' and c='Z' 

zZと同じではありません

setParaでJava charとしてOracle CHARパラメータを指定する必要はありません。メーターは、そう

preparedStatement.setString(3,"z"); 

または

preparedStatement.setString(3,String.valueOf('z')); 

のいずれかに

preparedStatement.setString(3,String.valueOf('Z')); 

を変更することはおそらく動作します。

+0

preparedStatement.setString(3、 "z");どちらかといえば動作しません。 – suhaskaranth

+0

次に接続設定を確認し、TOADとコードの接続で同じユーザー/スキーマを使用していることを確認してください。 – beny23