DBAtlas · 数据库运维图谱

ORA-12899: value too large for column(列的值太大)

Oracle

含义

向字符/数据列写入了长度超过定义的最大长度的值。例如,15 个字符的文本放不进 VARCHAR2(10) 列。

原因

列宽不足以容纳数据;在多字节字符集(UTF8)中字符数超过了字节限制(BYTE 语义);数据迁移期间使用了不同的字符集;拼接结果变长。

解决方法

加宽列:ALTER TABLE my_table MODIFY (my_column VARCHAR2(100)); 对于多字节内容,使用 CHAR 语义:my_column VARCHAR2(100 CHAR)。如果必须缩短长值,用 SUBSTR 截断。错误消息会给出实际长度和允许的长度;用 LENGTH/LENGTHB 找出溢出的记录。

在 DBAtlas 中打开 →

同一数据库的其他条目