首批通过分布式安全可靠测评,为关键业务系统打造
列查询时 identifier 混合反引号报语法错误 -1064
更新时间:2026-05-28 02:06
问题现象
列查询时同时指定库表列且只有库或列上指定反引号,如下两个 case 会触发语法报错。
case1: select test.t1.`c1` from t1;
case2: select `test`.t1.c1 from t1;
关键诊断信息
触发条件
列查询时同时指定库表列且只有库或列上指定反引号。
事前巡检
无 。
事后诊断
列查询时同时指定库表列且只有库或列上指定反引号。
问题原因
支持特殊 identifier 规则时没有考虑到反引号混合使用的情况。
问题的风险及影响
无,只会报语法错误。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 MySQL 租户,对于 Oracle 租户无影响。
影响版本
OceanBase 数据库 V4.2.1 BP4(oceanbase-4.2.1.4-104000062024022914)及之后版本。
解决方法及规避方式
解决方法:
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V4.2.1 BP4 Hotfix1(oceanbase-4.2.1.4-104010012024030714)版本、V4.2.1 BP4 Hotfix2(oceanbase-4.2.1.4-104020022024031915)版本、V4.2.1 BP4 Hotfix3(oceanbase-4.2.1.4-104030022024032913)版本、V4.2.1 BP4 Hotfix4(oceanbase-4.2.1.4-104040012024062517)版本、V4.2.1 BP5(oceanbase-4.2.1.5-105000072024041817)版本。
规避方式:
如下示例 case 不要加反引号或全加反引号或去掉库名。
case1: select test.t1.`c1` from t1; -》 case2: select test.t1.c1 from t1; case3: select `test`.`t1`.`c1` from t1; case4: select t1.`c1` from t1;