DBeaver中查看结果集列类型需通过底部状态栏、Metadata标签页、DESCRIBE/SHOW COLUMNS命令或列头悬停提示,右键菜单默认不提供该选项。

结果集右键菜单里没有“查看列类型”选项
很多人点开查询结果后习惯性右键,发现菜单里只有 Copy、Filter、Sort 这类操作,压根找不到“类型”“数据类型”“schema”之类的字眼。这不是你漏看了,DBeaver 默认确实不把列类型放在右键菜单里。
正确路径是:选中结果集任意单元格 → 看窗口底部状态栏 → 最右侧会显示当前列的完整类型信息,例如 VARCHAR(255)、BIGINT NOT NULL、TIMESTAMP WITH TIME ZONE。如果状态栏没开,按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)调出命令面板,输入 Toggle Status Bar 打开它。
SQL编辑器执行后点“Metadata”标签页看详细类型定义
在 SQL 编辑器里执行 SELECT 语句后,结果集上方有多个标签页:Result Set、Metadata、Execution Plan 等。切换到 Metadata 标签页,就能看到每列的:NAME、TYPE_NAME、COLUMN_SIZE、NULLABLE、REMARKS 等原生 JDBC 元数据字段。这里显示的是驱动实际返回的类型名,比如 PostgreSQL 可能显示 int4 而不是 INTEGER,MySQL 可能显示 tinyint(1) 表示布尔逻辑字段。
- 该页内容不可编辑,但可复制整行或整列(右键 →
Copy Row) - 如果某列类型显示为
OTHER或UNKNOWN,大概率是表达式列(如CASE WHEN...)或函数返回值,JDBC 驱动无法推断确切类型 - 部分数据库(如 Oracle)需要开启
Database → Driver Properties → sendStringParametersAsUnicode=false才能在Metadata中正确显示VARCHAR2类型
用 DESCRIBE 或 SHOW COLUMNS 查原始表结构
如果结果集来自简单单表查询(如 SELECT * FROM users),更可靠的方式是直接查源表元数据,而不是依赖结果集推断。在 SQL 编辑器中执行:
DESCRIBE users;
或(MySQL):
SHOW COLUMNS FROM users;
或(PostgreSQL):
\d users
这些命令返回的是数据库真实的列定义,包括默认值、约束、是否自增等,比结果集元数据更完整。注意:DESCRIBE 在不同数据库中行为不一致——Oracle 和 MySQL 支持,PostgreSQL 不支持(要用 \d),SQL Server 要用 sp_help 'table_name'。
结果集列头双击不显示类型,但长按可临时悬浮提示
鼠标悬停在结果集列标题(如 id、created_at)上约 1 秒,会出现一个浅色 tooltip,里面包含该列的 Type 和 Nullable 状态。这个提示不会显示长度或精度(如 VARCHAR(64) 只显示 VARCHAR),也不显示时区信息(TIMESTAMP WITH TIME ZONE 会简化为 TIMESTAMP)。如果你正在调试类型转换问题(比如 Java 应用报 Cannot convert from TIMESTAMP to java.time.LocalDateTime),仅靠这个提示不够,得回到 Metadata 标签页或查原始 DDL。
另外,DBeaver 的“自动调整列宽”功能(双击列分隔线)有时会把类型提示挤掉,建议手动拖宽列头再悬停确认。

















