У меня есть небольшая проблема с моим подготовленным заявлением. Я получил ошибку ORA-00936: отсутствует выражение при выполнении executeQuery()
. Можете ли вы рассказать мне, что я пропустил?Ошибка при подготовке сообщения: ORA-00936: отсутствует выражение
В моем классе конструктор.
private PreparedStatement reachOperation;
reachOperation = connection.prepareStatement("SELECT * FROM operations WHERE account_id = ? AND (date BETWEEN ? AND ?)");
My method.
public List<Operation> getOperations(int number, Date from, Date to)
throws DataStoreException {
ArrayList <Operation> result = new ArrayList<Operation>();
try {
java.sql.Date debut = new java.sql.Date(from.getTime());
java.sql.Date fin = new java.sql.Date(to.getTime());
reachOperation.setInt(1,number);
reachOperation.setDate(2,debut);
reachOperation.setDate(3,fin);
ResultSet rs = reachOperation.executeQuery();
while(rs.next()){
result.add(new Operation(rs.getInt(2),rs.getDouble(3),rs.getDate(4)));
}
rs.close();
return result;
} catch (SQLException error) {
error.printStackTrace();
return result;
}
}
Вызов метода
List<Operation>operations = new ArrayList<>();
operations = manager.getOperations(1, minDate, maxDate);
// check just do prinln depending of the result of the boolean expression
check("Blahblahblah", operations != null && operations.size() == 1);
System.out.println("orders = " + operations);
где r u значение для числовой переменной? – Sachu
Вы имеете в виду линию reachOperation.setInt (1, number); или операции вызова = manager.getOperations (1, minDate, maxDate); ? – Csi
извините, что его оракул использовал «дату» – Sachu