我正在开发一个以 Oracle 作为数据库的 C++ 应用程序,并尝试获取数以千计的 CLOB 数据类型的记录。
一直在网上搜索如何在 OCCI 中预取 CLOB 数据类型,但总是看到“如果 LONG、LOB 或不透明类型列(例如 XMLType)是查询的一部分,则预取无效。”
OCCI 中是否有预取 CLOB 的方法,或者是否有其他替代解决方案来缩短获取 CLOB 数据所花费的时间? 感谢您的帮助。
最佳答案
有一种方法可以做到这一点,我们大量使用它来优化通过 WAN 加载带有 CLOB 列的表
不是将数据作为 CLOB 列获取,而是将其转换为 varray(16)
的 varchar(32767)
select clob_to_str_array(clob_column) from table_name;
OCCI 会返回一个 vector < std::string >
在这种情况下。通过这种方法,我们将加载时间从 15 分钟缩短到不到 10 秒
我认为这是我有史以来最好的优化之一,但我这样做只是因为为时已晚,无法避免 CLOB
关于c++ - 有没有办法在 occi 中预取 LOB 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54784447/