我有一个非常大的查询。它相当大,所以我不会在这里发布(它有 6 级嵌套查询,带有排序和分组)。Query 有 2 个参数通过PreparedStatement.setString(index, value)
. 当我通过 SQL Developer 执行查询时(手动将查询参数替换为实际值),查询运行大约 10 秒并返回大约15000
行。但是,当我尝试使用带有变量的 PreparedStament 通过 java 程序运行它时,它会以ORA-01652(unable to extend temp segment)
. 我尝试使用 java 程序中的简单语句 - 它工作正常。此外,当我使用不带变量的preparedStatement(不使用setString()
,但手动指定参数)时,它也可以正常工作。
所以,我怀疑问题出在 PreparedStatemnt 参数中。
该参数的机制如何工作?为什么简单的语句可以正常工作,但准备好的语句却失败了?