---
title: order by clob 列报错 inconsistent datatypes-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 order by clob 列报错 inconsistent datatypes相关的常见问题和使用技巧，帮助您快速解决 order by clob 列报错 inconsistent datatypes的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# order by clob 列报错 inconsistent datatypes

更新时间：2023-12-07 03:16

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

## 问题描述

在使用 OceanBase 数据库时，当执行 SELECT 查询并使用 ORDER BY 对 CLOB 类型的列进行排序时，出现了错误提示：

```shell
ORA-00932: inconsistent datatypes。

```

示例如下:

1. 创建测试表。

   ```shell
   obclient > CREATE TABLE clob_table(id number primary key, clob_column clob not null);
   Query OK, 0 rows affected (0.036 sec)

   ```
 2. 插入测试数据。

   ```shell
   obclient > INSERT INTO clob_table VALUES(1, 'aasdgasbasdg');
   Query OK, 1 row affected (0.004 sec)

   ```

   ```shell
   INSERT INTO clob_table VALUES (2, 'aasdgasbasdg');
   Query OK, 1 row affected (0.000 sec)

   ```
 3. 提交插入数据。

   ```shell
   obclient > commit;
   Query OK, 0 rows affected (0.001 sec)

   ```
 4. 执行查询语句。

   ```shell
   obclient > SELECT clob_column FROM clob_table WHERE id =1 ORDER BY 1;
   ORA-00932: inconsistent datatypes

   ```
 5. observer 日志信息。

   ```shell
   WARN  [SQL.RESV] check_order_by (ob_select_resolver.cpp:776) [79825][0][YB420BEE9694-0005FD849735CE1F-0-0] [lt=10] [dc=0] lob expr can't order(ret=-5083, *order_items.at(i).expr_={item_type:"T_REF_COLUMN", result_type:{meta:{type:"LOB", collation:"utf8mb4_bin", coercibility:"IMPLICIT"}, accuracy:{length:50331648, precision:-1, scale:-1}, flag:0, calc_type:{type:"NULL", collation:"invalid_type", coercibility:"INVALID"}}, expr_info:["IS_COLUMN", "CNT_COLUMN"], rel_id:[1], table_id:1100611139453861, column_id:17, database_name:"SYS", table_name:"CLOB_TBL", synonym_name:"", synonym_db_name:"", column_name:"CLOB_COL", expr_level:0, expr_levels:[0], column_flags:0, enum_set_values:[], is_lob_column:true, is_joined_dup_column:false, is_unpivot_mocked_column:false, is_hidden:false})

   ```

## 适用版本

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

## 问题原因

在 OceanBase 数据库中，由于优化实现的原因，无法对 CLOB 类型的列进行排序。相反，在 Oracle 数据库中，由于优化是在排序之前进行的，因此可以对 CLOB 类型的列进行排序。

## 解决方法

解决方法: 在 OceanBase 数据库中对于CLOB 类型的列查询语句中去除 ORDER BY 子句，避免对 CLOB 类型的列进行排序。

示例如下:

```shell
obclient [SYS]> SELECT clob_column FROM clob_table WHERE id =1;

```

输出结果如下:

```shell
+--------------+
| CLOB_COLUMN  |
+--------------+
| aasdgasbasdg |
+--------------+
1 row in set (0.006 sec)

```

上一篇

[使用 GROUP BY 报错 ERROR 1055](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210006)

下一篇

[ORDER BY DESC 语句触发的正确性问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000008212) ![有帮助](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) 咨询热线
