DBeaver 默认将NULL渲染为空白单元格,可通过“窗口→首选项→数据编辑器→数据格式”中修改nullString值(如设为)实现界面区分;导出XLSX时需在导出向导“设置”页单独配置同名参数,二者互不影响。

结果集里NULL显示为空白?这是默认行为,但能改
DBeaver 默认把 NULL 值渲染成空白单元格,不加任何标记。这不是 bug,是设计选择——避免干扰视觉扫描。但审计、核对或导出场景下,你可能需要一眼区分“空字符串”和“真 NULL”。改法不在查询结果右键菜单里,而在全局格式设置中。
- 路径是:
窗口 → 首选项 → 数据编辑器 → 数据格式 - 选中当前数据源或“全局”配置文件,找到
nullString这一项 - 把它从空值改成比如
或∅,保存后新打开的结果集就会生效 - 注意:已打开的查询结果页不会实时刷新样式,需重新执行查询
为什么改了 nullString,导出 XLSX 还是空的?
导出时的 NULL 显示逻辑和界面渲染是两套系统。nullString 只影响结果集视图;导出用的是另一组参数,叫 nullString(同名但作用域不同),在导出向导的“设置”页里。
- 导出前必须点开向导里的“设置”页,手动填入你想要的占位符,比如
NULL - 这个值不会继承界面设置,也不会同步到其他导出格式(如 CSV、JSON)
- 如果导出 Excel 后某列全是空,先确认是不是查询本身没返回数据,而不是 NULL 渲染问题
NULL 和空字符串在结果集里长得一样,怎么快速分辨?
光靠肉眼几乎没法分,尤其当字段类型是 VARCHAR 且允许为空时。有三个实操手段:
- 鼠标悬停单元格:DBeaver 会显示 tooltip,里面明确写
NULL或'' - 按
Ctrl+Shift+I(Windows/Linux)或Cmd+Shift+I(macOS)打开“值查看器”,原始值一目了然 - 在结果集上右键 → “过滤器”,输入条件
IS NULL或= ''单独筛选,比看更可靠
企业文档导出时,NULL 注释要不要统一处理?
要,而且得分开处理。数据字典类导出(如 Markdown、HTML)通常走 DataExporterMarkdownTable 或 DataExporterHTML,它们读取的是 ExportConfiguration.nullString 字段,和界面/导出 XLSX 的 nullString 不是一回事。
- 这类导出的空值文本在“数据库 → 导出数据 → 设置”里单独配置,不是首选项面板
- 建议设为
NULL(全大写),和 SQL 语义一致,也方便下游程序做字符串匹配 - 如果团队用 Git 管理 Markdown 文档,统一
nullString能减少无意义的 diff
实际用的时候,最常被忽略的是:同一套 NULL 显示逻辑,在“界面查看”“XLSX 导出”“数据字典导出”三处各自维护一套配置,改一处不等于全改。











