sql - 如何将 CLOB 数据类型转换为 VARCHAR?或者只是为了最小化 CLOB 内容,因为我遇到了 JAVA 堆错误
问题描述
我需要使用具有 CLOB 数据类型的列,但它总是导致我出现 JAVA Heap 错误。如何将 CLOB 转换为 VARCHAR?或者我怎样才能最小化 CLOB 数据类型的字符数?
我只尝试过使用这个: select table.columnname (col, 100) from table
解决方案
当您从 LOB 数据类型读取数据时,您的 JAVA 程序会得到一个bytestream
并需要将其读入一个byte[]
变量,只要有更多数据来自服务器。
现在,LOB 通常用于处理大量数据,而您的客户端程序需要处理这些数据。
一种方法可能是增加虚拟机中的 Java 堆大小(检查 JAVA VM 的文档 - 它通常是一些-X
参数)。
另一种选择是在length()
从基于数据的数据中读取 LOB 值之前检查 LOB 值并以块的形式处理数据。例如,如果您只想预览LOB 列的一些数据,则只读取前 100KB 左右,然后停止读取。例如,SAP HANA Studio 就是这样做的。
无论哪种方式,如果您的应用程序想要使用 LOB 数据类型,都需要处理数据量。
推荐阅读
- django - 在Django模板中的for循环中对查询集进行排序不起作用
- javascript - 使用 face-api.js 包 (node.js) 时导入 @tensorflow/tfjs-node 的问题
- docker-compose - 没有得到 shinyproxy.log 保存在容器中
- json - Flutter 从 json 中获取数据而无需异步
- python - 将格式 json 转换为 csv
- javascript - 以编程方式填充 javascript/浏览器弹出凭据请求
- node.js - 代理错误:无法将请求 /api/house-listing 从 localhost:3000 代理到 http://localhost:5000?(ECONNRESET), MERN
- typescript - 打字稿:用泛型表达可选参数
- arrays - 如何使用 for 循环根据用户输入制作多个相似的数组?
- typescript - 未找到 mapbox-sdk-js 的子模块的 Typescript 导入错误