---
title: INSERT ALL 报错 -4024, Buffer not enough-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于INSERT ALL 报错 -4024, Buffer not enough相关的常见问题和使用技巧，帮助您快速解决INSERT ALL 报错 -4024, Buffer not enough的难题。
---
切换语言

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

划线反馈

# INSERT ALL 报错 -4024, Buffer not enough

更新时间：2026-05-28 02:06

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

## 适用版本

OceanBase 数据库 V3.x 版本。

## 问题描述

SQL 脚本导入 OceanBase 数据库 Oracle 模式报错。

```
ORA-00600: internal error code, arguments: -4024, Buffer not enough

```

对应表结构。

```
CREATE TABLE "xx" (
"ID" NUMBER(11) NOT NULL ,
"UID" VARCHAR2(50) NOT NULL ,
"SN" VARCHAR2(50) NOT NULL ,
"PC" VARCHAR2(20),
"EC" VARCHAR2(20),
"CC" VARCHAR2(20),
"VF" VARCHAR2(1),
"FSF" VARCHAR2(1),
"VFO" VARCHAR2(1),
"FSFO" VARCHAR2(1),
CONSTRAINT "hga" PRIMARY KEY ("ID")
) ;

```

对应的批量 SQL 脚本如下。

```
INSERT ALL
INTO xx VALUES (299, '1300003100325247', '30015857', '50', '501', '501', '1', '0', '1', null)
INTO xx VALUES (300, '1300003100325249', '30015858', '50', '501', '501', '1', '0', '1', null)
......
SELECT * FROM DUAL;

```

最终执行到 600 多行报错。

## 问题原因

INSERT ALL 是把列作为 alias 列实现的，也即所有 row 的 column 数会累加在一起。而 OceanBase 数据库不同版本下，一个表的最大列数是有限制的。

- V3.1.x 有列不能超过 512+64*2 = 640 的限制。
 - OceanBase 数据库 V3.2.x 最大不能超过 4096+128 列。
 - 在最新的 OceanBase 数据库 V4.x 版本上 INSERT ALL 不再受制于最大列数的限制。

## 解决方法

通过修改 SQL 来解决此问题，暂时有两种方法：

1. 把 insert all into 中的行数变小。
 2. 使用 insert into table values 替代。

上一篇

[Oracle 模式下对触发器中使用 insert all 语句的表进行操作报 ORA-00904 错误](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000246038)

下一篇

[业务插入报错：-6005, Try lock row conflict](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000340646) ![有帮助](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) 咨询热线
