有没有办法在occi中预取LOB数据?

时间:2019-02-20 10:45:44

标签: c++ clob prefetch occi

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

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

1 个答案:

答案 0 :(得分:0)

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

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

select clob_to_str_array(clob_column) from table_name;

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

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