问题现象
创建表报错 OBE-00600: internal error code, arguments: -5199, Row size too large。
-- Oracle 模式下,建表语句
obclient> CREATE TABLE test1 (
"test_1060" VARCHAR2(32767),
"test_1019" VARCHAR2(32767),
"test_1072" VARCHAR2(32767),
"test_1073" VARCHAR2(32767),
"test_1074" VARCHAR2(32767),
"test_1075" VARCHAR2(32767),
"test_1067" VARCHAR2(32767),
"test_1031" VARCHAR2(32767),
"test_1445" VARCHAR2(32767),
"test_1446" VARCHAR2(32767),
"test_1448" VARCHAR2(32767),
"test_1449" VARCHAR2(32767),
"test_1450" VARCHAR2(32767),
"test_1453" VARCHAR2(32767),
"test_1454" VARCHAR2(32767),
"test_1684" VARCHAR2(32767),
"test_1685" VARCHAR2(32767),
"test_1669" VARCHAR2(32767),
"test_1682" VARCHAR2(32767),
"test_1461" VARCHAR2(32767),
"test_1462" VARCHAR2(32767),
"test_1679" VARCHAR2(32767),
"test_1695" VARCHAR2(32767),
"test_1425" VARCHAR2(32767),
"test_1673" VARCHAR2(32767),
"test_1585" VARCHAR2(32767),
"test_1553" VARCHAR2(32767),
"test_1554" VARCHAR2(32767),
"test_1555" VARCHAR2(32767),
"test_1556" VARCHAR2(32767),
"test_1658" VARCHAR2(32767),
"test_1586" VARCHAR2(32767),
"test_1587" VARCHAR2(32767),
"test_1588" VARCHAR2(32767),
"test_1589" VARCHAR2(32767),
"test_1631" VARCHAR2(32767),
"test_1565" VARCHAR2(32767),
"test_1570" VARCHAR2(32767),
"test_1540" VARCHAR2(32767),
"test_1564" VARCHAR2(32767),
"ORG_ID" NUMBER(8),
"test_1005" VARCHAR2(32767),
"test_1006" VARCHAR2(32767),
"test_1007" VARCHAR2(32767),
"test_1012" VARCHAR2(32767),
"test_1013" VARCHAR2(32767),
"test_1058" VARCHAR2(32767),
"test_1059" VARCHAR2(32767),
"test_1060" VARCHAR2(32767),
"test_1019" VARCHAR2(32767),
"test_1072" VARCHAR2(32767),
"test_1073" VARCHAR2(32767),
"test_1074" VARCHAR2(32767),
"test_1075" VARCHAR2(32767),
"test_1067" VARCHAR2(32767),
"test_1031" VARCHAR2(32767),
"test_1445" VARCHAR2(32767),
"test_1446" VARCHAR2(32767),
"test_1448" VARCHAR2(32767),
"test_1449" VARCHAR2(32767),
"test_1080" VARCHAR2(32767),
"test_2588" VARCHAR2(32767),
"test_2589" VARCHAR2(32767),
"test_2631" VARCHAR2(32767),
"test_2565" VARCHAR2(32767),
"test_2570" VARCHAR2(32767),
"test_2540" VARCHAR2(32767),
"test_2564" VARCHAR2(32767),
"test_2080" VARCHAR2(32767),
"test_3588" VARCHAR2(32767),
"test_3589" VARCHAR2(32767),
"test_3631" VARCHAR2(32767),
"test_3565" VARCHAR2(32767),
"test_3570" VARCHAR2(32767),
"test_3540" VARCHAR2(32767),
"test_3564" VARCHAR2(32767),
"test_3080" VARCHAR2(32767),
"test_1450" VARCHAR2(32767),
"test_1453" VARCHAR2(32767),
"test_1454" VARCHAR2(32767),
"test_1684" VARCHAR2(32767),
"test_1685" VARCHAR2(32767),
"test_1669" VARCHAR2(32767),
"test_1682" VARCHAR2(32767),
"test_1461" VARCHAR2(32767),
"test_1462" VARCHAR2(32767),
"test_1679" VARCHAR2(32767),
"test_1695" VARCHAR2(32767),
"test_1425" VARCHAR2(32767),
"test_1673" VARCHAR2(32767),
"test_1585" VARCHAR2(32767),
"test_1553" VARCHAR2(32767),
"test_1554" VARCHAR2(32767),
"test_1555" VARCHAR2(32767),
"test_1556" VARCHAR2(32767),
"test_1658" VARCHAR2(32767),
"test_1586" VARCHAR2(32767),
"test_1587" VARCHAR2(32767),
"test_1588" VARCHAR2(32767),
"test_1589" VARCHAR2(32767),
"test_1631" VARCHAR2(32767),
"test_1565" VARCHAR2(32767),
"test_1570" VARCHAR2(32767),
"test_1540" VARCHAR2(32767),
"test_1564" VARCHAR2(32767),
"test_1080" VARCHAR2(32767),
"test_2588" VARCHAR2(32767),
"test_2589" VARCHAR2(32767),
"test_2631" VARCHAR2(32767),
"test_2565" VARCHAR2(32767),
"test_2570" VARCHAR2(32767),
"test_2540" VARCHAR2(32767),
"test_2564" VARCHAR2(32767),
"test_2080" VARCHAR2(32767),
"test_3588" VARCHAR2(32767),
"test_3589" VARCHAR2(32767),
"test_3631" VARCHAR2(32767),
"test_3565" VARCHAR2(32767),
"test_3570" VARCHAR2(32767),
"test_3540" VARCHAR2(32767),
"test_3564" VARCHAR2(32767),
"test_3080" VARCHAR2(32767));
OBE-00600: internal error code, arguments: -5199, Row size too large
关键信息
关键日志信息如下:
observer.log.20260305140009187:[2026-03-05 14:00:00.647071] WDIAG [SQL.RESV] check_row_length (ob_table_schema.cpp:6100) [32242][T1002_L0_G0][T1002][xxxxx-xxxxx-xxxxx-xxxxx] [lt=0][errcode=-5199] row_length is larger than max_row_length(ret=-5199, row_length=1605583, rowkey_length=0, max_row_length=1572864, column_cnt_=49)
由上述日志信息可知表中所有字段的总长度超过 1.5MB(1572864 字节) 的行大小限制,错误码为 -5199,提示行长度超过了最大限制。具体数值为 row_length=1605583,max_row_length=1572864,column_cnt_=49。
问题原因
创建表的 SQL 语句中所有字段的总长度超过 1.5MB(1572864 字节) 的行大小限制。详情可参见:使用限制 中单个表的限制这一章节有关行长度的内容。
问题的风险及影响
创建表失败。
适用版本
OceanBase 数据库 V4.x 版本。
解决方法及规避方式
创建表时将部分 VARCHAR2(32767) 调整为更小值(如 VARCHAR2(8192)),确保总长度 < 1.5MB。
-- Oracle 模式下,示例代码
ALTER TABLE test1 MODIFY "test_xxx" VARCHAR2(8192);