c++ - 有没有办法在 occi 中预取 LOB 数据?
问题描述
我正在开发一个使用 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;
vector < std::string >
在这种情况下,OCCI 将返回给您。通过这种方法,我们将加载时间从 15 分钟缩短到不到 10 秒
我认为这是我有史以来最好的优化之一,但我这样做只是因为避免 CLOB 为时已晚
推荐阅读
- three.js - 如何在不使用 Threejs 的情况下使用 WebGL 加载 glb 文件
- java - 如何使用租户 ID、客户端 ID 和客户端密码连接和管理 Azure Data Lake Storage Gen2 中的目录和文件?
- python - 如何在给定网站中抓取表格?
- java - Java中的Csv到Json转换
- c# - 获取控件中 ViewModel 中使用的 BindableProperty 的值?
- reactjs - 有条件地要求使用 React Native 和 TypeScript 的图像资产的正确方法是什么?(得到 eslint 错误)
- javascript - 扩大未捕获的 AppSync 订阅(承诺中)
- android - Flutter:如何访问 Map 中的数组数据?
- http - 在 Marklogic 中使用非管理员用户时找不到 http 调用的 404
- flutter - Flutter Stack的孩子在使用线性渐变时是透明的