GBase 8s
其他
问答
DBeaver 连接 GBase 8s V8.8 打开表属性报错 Routine (read_defaultstr) can not be resolved
发表于2026-07-09 15:50:4954次浏览12个评论
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】: GBase 8s V8.8
【操作系统】: window 11
【CPU】: i5
【问题描述】*:
使用 DBeaver(26.1.2)通过官方 JDBC 驱动(gbasedbtjdbc 3.3.0 / 3.5.1 / 3.6.3 均验证)连接 GBase 8s V8.8, 表数据可正常查询,但打开表「属性 / 列信息」时报错:
SQL 错误 [IX000]: Routine (read_defaultstr) can not be resolved.
Routine (read_defaultstr) can not be resolved.
SQLException复现步骤:
- DBeaver 新建 GBase 8s 连接,使用 gbasedbtjdbc 任意版本驱动;
- 连接成功,表数据可正常 SELECT;
- 右键表 → 打开「属性」→ 切到列信息(Columns);
- 即报上述错误,属性面板无法加载。
已做的排查(证据):
确认
read_defaultstr例程在目标库中不存在:SELECT procname, owner FROM sysprocedures WHERE LOWER(procname) = 'read_defaultstr'; -- 返回 0 行- GBase 自带客户端工具(dbaccess / GBaseDataStudio 原生路径)打开同一表的属性完全正常, 说明其直接读取
syscolumns.default系统表,并不依赖read_defaultstr。 - 更换 3.3.0 / 3.5.1_3X2_1 / 3.6.3 三个版本驱动,报错一致;
- DBeaver 元数据开关(Generate DLLs with extra info、Do not read tables information 等)均无效;
- 因数据库安全策略,无法在库中创建该例程,只能从客户端侧解决。
根因判断:DBeaver 的 Informix/GBase 元数据读取逻辑在取列默认值时,硬编码调用了 read_defaultstr() 存储过程。该例程并非所有 GBase 8s V8.8 实例的必装核心例程,缺失时 DBeaver 直接整体失败。
希望厂商协助的点:
- 明确
read_defaultstr在 GBase 8s V8.8 中是否应默认存在、属于哪套系统脚本(如 syscdcsv1.sql); - 提供该例程的官方标准定义(参数签名),便于用户在缺失环境补齐;
- 优化官方 JDBC 驱动
DatabaseMetaData.getColumns()的实现,使其直接读取syscolumns.default, 不依赖read_defaultstr,与 GBase 自有工具保持一致。
评论
登录后才可以发表评论
GBase用户51829发表于 26天前
第一次连接也遇到这个问题,谢谢分享,已收藏
liaosnet发表于 23天前
数据库驱动需与数据库版本一致,这个报错出现的原因是在某个版本开始,元数据使用到了该函数。
ጽᵂᴶʸ发表于 21天前
@liaosnet:不行, 驱动试了好几个呢, 和版本配套的是优先用的
ጽᵂᴶʸ发表于 21天前
@liaosnet:官网上也没有对应版本的驱动下载, 手里的都是厂商提供的
liaosnet发表于 20天前
@ጽᵂᴶʸ:数据库版本用啥,驱动就用啥。
liaosnet发表于 20天前
@ጽᵂᴶʸ:提供一下数据库版本号吧。
ጽᵂᴶʸ发表于 16天前
@liaosnet:GBase8sV8.8_AEE_3.3.0_2X5_1_9067a9
ጽᵂᴶʸ发表于 16天前
@liaosnet:驱动: 1. gbasedbtjdbc_3.3.0_2P20220125_6ebfdb
2. gbasedbtjdbc_3.3.0_2_36477d
3. gbasedbtjdbc_3.5.1_3X2_1
2. gbasedbtjdbc_3.3.0_2_36477d
3. gbasedbtjdbc_3.5.1_3X2_1
liaosnet发表于 14天前
@ጽᵂᴶʸ: WHEN 'E' THEN read_defaultstr(c.tabid, c.colno, c.coltype, c.collength, c.extended_id)::VARCHAR(32731)
看起来是dbeaver的plugins中使用了这个函数,该函数的确是在后面的版本中才支持。
看起来是dbeaver的plugins中使用了这个函数,该函数的确是在后面的版本中才支持。
liaosnet发表于 14天前
@ጽᵂᴶʸ:试一下 dbboys https://dbboys.com
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25049
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526

