DBeaver中text/blob字段显示为[clob]是因默认启用LOB内容截断,需在「首选项→数据库→编辑器→数据编辑器」中调大「最大LOB内容长度」并勾选「加载完整LOB值」,同时检查「结果集最大行数」及导出时的独立LOB设置。

结果集里 text/blob 字段显示为 [clob] 怎么办
这是 DBeaver 默认启用内容截断的典型表现,不是数据丢了,而是客户端主动“不取全”。[clob] 或 [blob] 是占位符,代表字段内容被截断。默认限制通常为 1024 字符或 64KB,取决于驱动和配置。
- 打开「窗口」→「首选项」(macOS 是「DBeaver」→「设置」)
- 左侧导航进入「数据库」→「编辑器」→「数据编辑器」
- 找到「最大 LOB 内容长度(字节)」选项,把默认值(如
1024或65536)改成你需要的上限,比如1048576(1MB)或0表示不限制 - 勾选「加载完整 LOB 值」——否则即使改了长度上限,DBeaver 仍可能懒加载、只在双击单元格时才拉取
- 点「应用并关闭」,已打开的结果集需手动刷新(
F5)才生效
为什么改了 LOB 长度,还是只看到前几行?
结果集行数限制和 LOB 内容长度是两套独立开关。即使你放开 text 字段长度,若「结果集最大行数」没调大,照样只显示前几百行。
- 路径:「首选项」→「数据库」→「编辑器」→「数据编辑器」→「结果集」
- 修改「最大行数」值,比如从默认
500改成5000或0(0 = 不限制) - 务必取消勾选「自动获取下一页数据」(
Auto-fetch next segment),否则滚动到底部时会重新发查询,可能触发超时或重复计费(尤其在远程生产库) - 如果用的是 MySQL,确认驱动支持大结果集:在连接编辑页 →「驱动属性」里添加
useCursorFetch=true和defaultFetchSize=1000,避免 JDBC 一次性加载全部数据到内存
导出时 text 字段又被截断,跟界面设置无关?
对。导出 Excel/XLSX 走的是另一套数据提取逻辑,不复用界面上的 LOB 设置。它由导出向导里的「LOB 内容长度」参数单独控制。
- 执行完查询后,右键结果集 →「导出结果」→ 选择
Excel XLSX - 在导出向导第二步「导出设置」中,展开「高级选项」
- 找到「LOB 内容长度(字节)」,设为与界面一致的值(如
1048576) - 注意:这个值只影响导出过程,不影响当前结果集显示;且对二进制字段(如图片)无效,它们仍会转成占位符
text 字段太长导致卡顿或 OOM?
不限制 LOB 长度看似一劳永逸,但实际风险很高。DBeaver 会把整个字段内容加载进 JVM 内存,尤其是多行 + 多列 text 的结果集,极易触发 GC 频繁甚至 OutOfMemoryError。
- 建议按需设上限,而非盲目填
0:查日志表可设10000,查备注字段设2000即可 - 真正要全文检索时,别依赖 DBeaver 显示,改用
SELECT SUBSTRING(content, 1, 200) AS preview FROM ...先看摘要 - 如果必须处理超长文本,优先在 SQL 里用
LEFT(content, 500)或正则截取关键段落,比让 DBeaver 拉全量更稳
最常被忽略的一点:LOB 长度设置在「每个连接配置」里也能单独覆盖。如果你连的是测试库和生产库,千万别只改全局设置——生产库务必保持保守值,否则一次误点全量查询就可能拖垮客户端。

















