Я пытаюсь выполнить запрос LIKE в Java, используя подготовленные операторы, но получаю следующую ошибку
ORA-00904: "%12P1A%": invalid identifier
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
connection = DataSourceFactory.getConnection();
statement = connection.prepareStatement("select * from users where userID like ?");
statement.setString(1, "%12P1A%");
resultSet = statement.executeQuery();
//....
}catch (SQLException e) {
throw new DAOException(e.getMessage());
} finally {
DaoUtil.closeAll(connection, statement, resultSet);
}
Могу ли я узнать, почему это неверно?
Для получения дополнительной информации, я на самом деле получаю '% 12P1A%' с помощью какой-то другой функции, поэтому код выглядит примерно так:
statement = connection.prepareStatement("select * from users where userID like ?");
statement.setString(1, getValue());
, запрос разбирается на что-то вроде
* 1010. *
но он выбрасывает параметр MISSING IN или OUT. ИДК, почему это не выбор стоимости. Какие-либо предложения?