Я использую ojdbc6 jar, и я хочу использовать предложение In в PreparedStatement.
Я использовал метод createArrayOf(String,ArrayOfString)
объекта соединения.
У меня возникла ошибка как функция Unsupported
Я проверил класс PhysicalConnection в реализации для этого метода.
public Array createArrayOf(String s, Object aobj[]) throws SQLException {
SQLException sqlexception = DatabaseError.createUnsupportedFeatureSqlException();
sqlexception.fillInStackTrace();
throw sqlexception;
}
Я проверил ojdbc14.jar для этого метода. В этом файле.jar этот метод не определен.
Пожалуйста, помогите мне, какую банку я должен использовать? Я хочу реализовать функциональность предложения In в PreparedStatement.
Поэтому вы хотите сделать что-то вроде...
SELECT * FROM TAB WHERE ID IN ?
У меня была аналогичная проблема в прошлом и я пробовал всевозможные трюки с JDBC и Oracle (такие как пользовательские типы и т.д.), Но это то, что мы закончили с...
Создайте глобальную временную таблицу, содержащую один столбец идентификатора (в скобках для сеанса - ВКЛ. КОМИТЕТ УДАЛИТЬ)
Начать транзакцию
Вставьте все идентификаторы, которые вы хотите, используя оператор партии в таблицу temp
Присоединитесь к этой таблице, чтобы получить результаты, например...
SELECT * FROM TAB T INNER JOIN MyTempTable X ON T.ID = X.ID
Когда вы совершаете фиксацию, таблица temp усечена
Если вам нужно сделать несколько из них в одной транзакции, сначала удалите форму temp-таблицы.
(Кроме того, у нас было множество проблем с версиями драйверов и такими вещами, как setArray и т.д., Поэтому мы остановились на этом)