ORA-06502: PL/SQL: 数字或值错误

来源:互联网 发布:死或生5mac 编辑:程序博客网 时间:2024/05/22 00:33

今天因为这个问题花费了我好几个小时的时间,当找到真正原因的时候傻眼了,所以记载下来给大家也是给我自己一个警告吧。一定要找到错误的根源。

我写了一个过程,执行动态的SQL并把游标循环放到一个已声明的变量里,如下:

v_temp   varchar2(50);---声明的变量

fetch v_cursor into v_temp; 取游标值放进变量里

测试了下一走到fetch v_cursor into v_temp;就报错:ORA-06502: PL/SQL: 数字或值错误。我就真以为是数据有误,用排除法搞了几个小时,最终查资料

获得错误的潜在含义是:字符串缓冲区太小。

顿时明白原来是取得的游标里的值过大,而v_temp值规定的过小,我试了试,把50改成1000成功了不再报错!

原创粉丝点击