---
title: SQL 执行出现 check_column_in_current_level_stmt get unexpected expr 异常-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于SQL 执行出现 check_column_in_current_level_stmt get unexpected expr 异常相关的常见问题和使用技巧，帮助您快速解决SQL 执行出现 check_column_in_current_level_stmt get unexpected expr 异常的难题。
---
切换语言

- 简体中文
- English

划线反馈

# SQL 执行出现 check_column_in_current_level_stmt get unexpected expr 异常

更新时间：2026-05-29 08:46

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：Troubleshoot  

## 问题现象

某 SQL 在执行时出现 -4016，日志伴如下异常信息。

```shell
observer.log.20240527153252:[2024-05-27 15:30:24.357803] WARN [SQL.OPT] calculate_distinct (ob_opt_selectivity.cpp:3624) [50219][0][xxxxxx-xxxxxx-xxxxx-xxxxx] [lt=14] [dc=0] failed to check column in current level stmt(ret=-4016)
observer.log.20240527153252:[2024-05-27 15:30:24.357809] WARN [SQL.OPT] add_generate_table_meta_info (ob_opt_selectivity.cpp:373) [50219][0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=5] [dc=0] failed to calculate distinct(ret=-4016)

```

## 问题原因

OceanBase 集群内部会对SQL进行改写，在某些改写情况下针对某些 SQL 存在改写缺陷，从而在生成执行计划时出现非预期异常，导致该错误。

## 问题的风险及影响

SQL 执行失败。

## 影响租户

影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。

## 适用版本

OceanBase 数据库 V2.x 和 V3.x 版本。

## 解决方法及规避方式

- 解决方法：

  升级 OceanBase 数据库至 V4.x 版本。
 - 规避方式：

  增加如下 hint：/*+no_rewrite*/ 。

Previous

[使用 tee 命令来保存SQL交互式执行的完整记录](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003226743)

Next

[OceanBase 数据库集群内执行 SQL 时出现 -4019 异常](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002393086) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
