我正在使用Oracle作为数据库的C ++应用程序,并试图获取具有CLOB数据类型的数千条记录。
一直在网上搜索如何在OCCI中预取CLOB数据类型,但始终看到此消息“如果LONG,LOB或不透明类型列(例如XMLType)是查询的一部分,则预取无效。”
OCCI中是否有一种方法可以预取CLOB,或者是否有其他替代解决方案可以缩短获取CLOB数据的时间? 感谢您的帮助。
答案 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