Параметризованный SQL-запрос Oracle в Java?

Я пытался выяснить, почему следующий код не генерирует данных в моем ResultSet:

String sql = "SELECT STUDENT FROM SCHOOL WHERE SCHOOL = ? ";
PreparedStatement prepStmt = conn.prepareStatement(sql);
prepStmt.setString(1, "Waterloo");
ResultSet rs = prepStmt.executeQuery();

С другой стороны, следующие выполнения правильно:

String sql = "SELECT STUDENT FROM SCHOOL WHERE SCHOOL = 'Waterloo' ";
PreparedStatement prepStmt = conn.prepareStatement(sql);
ResultSet rs = prepStmt.executeQuery();

Типом данных для ШКОЛЫ является CHAR (9 байтов). Вместо setString я также попробовал:

String sql = "SELECT STUDENT FROM SCHOOL WHERE SCHOOL = ? ";
PreparedStatement prepStmt = conn.prepareStatement(sql);
String school = "Waterloo";
Reader reader = new CharArrayReader(school.toCharArray());
prepStmt.setCharacterStream(1, reader, 9);
prepStmt.setString(1, "Waterloo");
ResultSet rs = prepStmt.executeQuery();

Я полностью застреваю на том, что заняться расследованиями затем; отладчик Eclipse говорит, что SQL-запрос не изменяется даже после setString или setCharacterStream. Я не уверен, является ли это, потому что установка параметров не работает, или если отладчик просто не может взять изменения в PreparedStatement.

Любая справка будет значительно цениться, Спасибо!

5
задан echoblaze 10 August 2010 в 16:38
поделиться