首页 > 解决方案 > 有没有办法在 occi 中预取 LOB 数据?

问题描述

我正在开发一个使用 Oracle 作为数据库的 C++ 应用程序,并尝试获取数千条具有 CLOB 数据类型的记录。
一直在网上搜索如何在 OCCI 中预取 CLOB 数据类型,但总是看到这个“如果 LONG、LOB 或不透明类型列(如 XMLType)是查询的一部分,则预取无效。”

OCCI 中是否有方法可以预取 CLOB,或者是否有其他替代解决方案来缩短获取 CLOB 数据所花费的时间?谢谢您的帮助。

标签: c++clobprefetchocci

解决方案


有一种方法可以做到这一点,我们大量使用它来优化跨 WAN 加载具有 CLOB 列的表

与其将数据作为 CLOB 列获取,不如将其转换varray(16)varchar(32767)

select clob_to_str_array(clob_column) from table_name;

vector < std::string >在这种情况下,OCCI 将返回给您。通过这种方法,我们将加载时间从 15 分钟缩短到不到 10 秒

我认为这是我有史以来最好的优化之一,但我这样做只是因为避免 CLOB 为时已晚


推荐阅读