首批通过分布式安全可靠测评,为关键业务系统打造
本地租户(字符集为 GBK)通过 DBLink 查询远端名称为中文的库表列报错的原因和解决方法
更新时间:2026-06-03 03:01
问题现象
本地租户是非 UTF8MB4 字符集的 OceanBase 数据库 Oracle 模式租户,远端是 OceanBase 数据库 Oracle 模式租户,通过 DBLink 访问远端的中文库,表或列会报错。
关键信息
假设 t0@link2 包含名称是姓名的列,本地是 GBK 字符集的 OceanBase 数据库 Oracle 模式租户,会出现如下图所示的报错。

问题原因
OceanBase 数据库 BUG 导致,会根据本地租户字符集执行 set names,如果本地租户字符集是 GBK,获取的远端 schema 名称的字符集也是 GBK,而本地解析库/表/列时字符集都是 UTF8MB4,字符集不匹配导致解析不了。
问题的风险及影响
导致无法访问远端的中文 schema,查询报错。
影响版本
OceanBase 数据库 V4.2.1 BP11(oceanbase-4.2.1.11-111000052025032520)及之后版本、V4.2.1 BP11 Hotfix1(oceanbase-4.2.1.11-111010032025041110)版本、V4.2.1 BP11 Hotfix2(oceanbase-4.2.1.11-111020032025051316)版本、V4.2.1 BP11 Hotfix3(oceanbase-4.2.1.11-111030012025051713)版本、V4.2.1 BP11 Hotfix4(oceanbase-4.2.1.11-111040032025061010)版本、V4.2.1 BP11 Hotfix5(oceanbase-4.2.1.11-111050022025071110)版本、V4.2.5 BP2(oceanbase-4.2.5.5-105000052025070822)及之后版本、V4.3.5(oceanbase-4.3.5.0-100000122024123020)及之后版本。
解决方法
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V4.2.5 BP5(oceanbase-4.2.5.5-105000052025070822)及之后版本、V4.3.5 BP3(oceanbase-4.3.5.3-103000102025071821)及之后版本。
规避方式
无。