ORA-06512 数字或值错误,字符缓冲区太小在开发 oracle 存储过程时,常常遇到返回大的字符型数据。超过 4000 字节的通常采用CLOB,在 4000 之内的则常用 varchar2。但是实际开发中,使用 varchar2 时常常会出错。例如有表:TB_WEBSITEINFOID WHOISINFONumber Varchar2(4000)如下存储过程,实现查询表中的 WHOISINFO 信息:在 SQL Developer 中调试,会出现 ora-06502 的错误:字符缓冲区太小。在代码中,使用的是 Varchar2,数据库中也使用的是 Varchar2,为什么会出现这种错误呢?网上也有不少朋友遇到过这种情况,答案真是五花八门。通过调试跟踪,发现系统给vinfo 的默认大小为 200 字节,当数据库字段超过 200 字节时,自然会报错了。将该变量的返回调整为何数据一致,即改成 4000,编译再调试,就不会有这种错误了。执行结果: