问题分析
出现这个问题的原因是, 某列中包含的数据长度超出了建表时对该列的限制, 一般情况下修改出错列的长度设置, 然后重新建表即可. 不过有时问题会更复杂一些, 存储字符串常用的 VARCHAR2
类型的默认长度上限是 4000 bytes, 如果要存储的数据中包含超过 4000 bytes 的数据该如何解决?
问题解决
遇到 VARCHAR2
类型长度不够用的情况时, 可以考虑两种方案:
- 改用其它数据类型
如改为 LONG
或者 CLOB
, 这两种数据类型可以存储 GB 级别的字符串, 但也有各自的局限, LONG
类型在一张表中只能出现一次, CLOB
在读取时比较麻烦
- 修改
VARCHAR2
数据类型的上限
根据官网的说明, VARCHAR2
的上限可以改为 32767 bytes, 下面给出 Non-CDB
型数据库的详细设置流程, CDB
型数据库的设置后面研究一下再补充, 参考官网教程