ORA06502: PL/SQL:numeric or value error!

帮同事看一个问题,在更新一个view的时候,触发了一些列的triggers,最后得到的错误信息就是ORA-06502: numeric or value error. 刚开始一直以为是在往表里插入数据的时候,是不是哪个列的类型不匹配造成的。注释了很多地方,都不奏效。

无奈之下,只好用了下SQL Developer的debug功能,最后终于发现问题所在,是因为往一个varchar2的变量里面放数据的时候,超过了长度限制!!!  

这个错误很好重现,如下


SQL
> declare
  
2   v_name varchar2(3);
  
3  begin
  
4   v_name := 'Frank';
  
5  end;
  
6  /
declare
*
ERROR at line 
1:
ORA
-06502: PL/SQL: numeric or value error: character string buffer too small
ORA
-06512: at line 4

从这个错误信息可以看出,还有个后半段叫 character string buffer too small

但是调的那段代码给出的错误信息却没有这个后半段,因此刚开始找错了方向!!

借此博文,记下这个错误! 




--------------------------------------
Regards,
FangwenYu
原文地址:https://www.cnblogs.com/fangwenyu/p/1740626.html