Oracle Blob搜索返回陈旧数据

时间:2018-10-11 14:10:25

标签: oracle hibernate jdbc blob oracle-text

我已经在Oracle12c数据库中存储了一个200mb .txt文件。它被命名为aaa.txt,仅包含“ a”字母。附件表的行DATA包含BLOB。

当我进入SQL-Developer并执行以下语句时

SELECT distinct ID FROM ATTACHMENT WHERE CONTAINS(DATA, '%aa%', 1) > 0;

它返回我的行。但是,当我在Java应用程序中执行prepareStatement

preparedStatement = connection.prepareStatement("select distinct ID from ATTACHMENT WHERE CONTAINS (DATA, \'%aa%\', 1) > 0");
resultSet = preparedStatement.executeQuery();

我没有得到那一行。我尝试了休眠的nativeQueries和jdbc prepareStatements。

我还尝试禁用隐式和显式缓存

connection.setImplicitCachingEnabled(false);
connection.setStmtCacheSize(0);
connection.setExplicitCachingEnabled(false);
preparedStatement.setDisableStmtCaching(true);

所有新文件都会出现问题,preparedStatement确实会找到旧文件。

我还尝试过重新分析表格并同步索引

ANALYZE TABLE ATTACHMENT COMPUTE STATISTICS

BEGIN
    CTX_DDL.SYNC_INDEX('IDX_ATTACHMENT');
END;
/

这里有什么我想念的吗?

0 个答案:

没有答案