我正在审查一些用于在 oracle 数据库上处理 CLOB 的旧 Java/JDBC 代码。现有代码使用类似于此问题中提到的方法的方法。
我发现一篇文章说:
在 Oracle JDBC 10g 之前,为了在 JDBC 中操作 CLOB 数据,使用了 Oracle 扩展类 oracle.sql.CLOB。但是现在,Oracle JDBC 10g 有一些增强功能可以简化 JDBC 应用程序中的 CLOB 操作。这允许使用一些可用的标准 API 来处理大数据,而不是使用 Oracle 扩展类。
本文提供了有关此增强功能的详细信息的以下信息:
默认情况下,preparedStatement.setString() 方法将允许处理最多 32765 个字节的字符串。为了插入大于 32765 字节的数据,可以设置一个新引入的 Connection 属性——SetBigStringTryClob。这迫使preparedStatement.setString() 使用另一个新引入的方法,OraclePreparedStatement.setStringForClob()。
但是它警告:
... 以这种方式处理大量数据可能并不明智;流式传输数据是更好的选择。
但以上是该文章中唯一与性能相关的警告。我的问题是,如果我的代码中的所有 CLOB 访问都已经通过 String 对象完成,我是否应该担心这种方法更改可能导致的任何其他潜在性能问题?换句话说,我的应用程序没有使用流式传输提供的好处,因为它已经总是在 String 对象中加载 CLOB,因此上述警告可能会被忽略,因为我们目前的目标不是提高性能。由于切换到此技术,是否可能出现任何其他与性能相关的问题?