Oracle Blob search возвращает устаревшие данные
Я сохранил 200-мегабайтный текстовый файл в моей базе данных Oracle12c. Он называется aaa.txt и содержит только буквы "а". В таблице вложений есть строка DATA, которая содержит BLOB.
Когда я вхожу в SQL-Developer и выполняю следующую инструкцию
SELECT distinct ID FROM ATTACHMENT WHERE CONTAINS(DATA, '%aa%', 1) > 0;
это возвращает мой ряд. Однако, когда я выполняю подготовленное состояние в моем приложении Java
preparedStatement = connection.prepareStatement("select distinct ID from ATTACHMENT WHERE CONTAINS (DATA, \'%aa%\', 1) > 0");
resultSet = preparedStatement.executeQuery();
Я не понимаю этот ряд. Я пробовал hibernate nativeQueries и подготовленные состояния jdbc.
Я также пытался отключить неявное и явное кеширование
connection.setImplicitCachingEnabled(false);
connection.setStmtCacheSize(0);
connection.setExplicitCachingEnabled(false);
preparedStatement.setDisableStmtCaching(true);
Проблема возникает со всеми новыми файлами, подготовленное состояние находит старые файлы.
Я также попытался повторно проанализировать таблицу и синхронизировать индекс
ANALYZE TABLE ATTACHMENT COMPUTE STATISTICS
BEGIN
CTX_DDL.SYNC_INDEX('IDX_ATTACHMENT');
END;
/
Есть ли что-то, что я здесь скучаю?