DBeaver默认截断长文本为1024字符以保护性能,需右键选“Open in Value Viewer”查看完整内容;导出至Excel受其32767字符限制,应改用CSV或SQL导出;Value Viewer异常多因内存不足或JDBC驱动不兼容。

结果集里点开就截断?默认不显示完整文本
DBeaver 默认对结果集中的长文本(如 TEXT、CLOB、JSON 字段)只显示前 1024 字符,后面用 ... 截断。这不是 bug,是 UI 层的性能保护机制——防止一次加载几 MB 文本把界面卡死。
真正想看全内容,得手动触发“查看器”:右键该单元格 → 选 Open in Value Viewer(不是“Copy value”或“Edit”)。这个操作会启动独立窗口,加载完整原始值,支持搜索、滚动、复制整段。
- 如果右键菜单没出现
Open in Value Viewer,说明字段被识别为二进制类型(比如 PostgreSQL 的BYTEA),此时需先在 SQL 里用encode(col, 'hex')或convert_from(col, 'UTF8')转成文本再查 - 某些驱动(如旧版 MySQL JDBC)会把
TEXT当作流式字段处理,导致 DBeaver 无法预读全量,可尝试在连接设置里加参数useServerPrepStmts=false&cachePrepStmts=true -
Value Viewer窗口标题栏会显示实际字节数,比如Value Viewer (42,891 bytes),这是确认是否加载完整的依据
导出时超长文本被砍到 32767 字符?Excel 单元格上限硬限制
导出成 XLSX 时,即使你在结果集里用 Value Viewer 看到了完整文本,导出后打开 Excel 还是只显示前 32767 字符——这不是 DBeaver 的问题,是 Excel 格式本身的单单元格字符上限。
解决办法不是调 DBeaver 设置,而是提前拆分字段:
- 在 SQL 查询里用
substring(col, 1, 32767)和substring(col, 32768, 32767)拆成两列,导出后人工拼接 - 若字段含结构化内容(如 JSON),优先导出为
CSV格式,它没有单行长度限制,用 VS Code 或 Python pandas 打开更可靠 - 别依赖“导出 SQL”选项来保留长文本,
exportSql只存查询语句本身,不存结果数据
Value Viewer 打不开或闪退?内存和驱动版本是关键
点击 Open in Value Viewer 后窗口空白、无响应,或直接崩溃,常见原因有两个:
- DBeaver 启动内存不足:编辑
dbeaver.ini,把-Xmx改成至少-Xmx2g(2GB),尤其处理 >1MB 的 JSON 或 XML 字段时 - JDBC 驱动不兼容:例如 Oracle 19c 连接用 ojdbc8.jar 是 OK 的,但换成 ojdbc11.jar 后,某些 CLOB 流读取逻辑会抛
NullPointerException,退回 ojdbc8 可解 - Windows 上偶尔因系统字体渲染冲突导致 Viewer 窗口初始化失败,可临时在 DBeaver 设置里关掉
Use native OS fonts
想批量检查几百个长字段值?别点开每个单元格
手动右键 → Open in Value Viewer 适合抽查,但面对几十列、每列都有长文本的表,效率极低。更稳的路径是写 SQL 直接过滤和截取:
- 快速定位超长记录:
SELECT id, length(text_col) AS len FROM table WHERE length(text_col) > 10000 - 生成可读摘要:
SELECT id, left(text_col, 200) || '...' || right(text_col, 50) AS preview FROM table - 导出全部原始值到文件:
SELECT text_col FROM table→ 右键结果集 →Export→ 格式选SQL insert或CSV,勾选Quote strings,避免换行符破坏结构
Value Viewer 是单点调试工具,不是批量分析入口。真要处理大量长文本,绕过 UI、直走 SQL + 导出,反而最省时间。











