日期:2014-05-17  浏览次数:20977 次

oracle存储过程查询报错
oracle存储过程执行异常,异常信息“ORA-06502:PL/SQL:numeric or value error:character string buffer too small”,请问这是什么原因呢?

------解决方案--------------------
字段长度定义不够啊,修改下就行了
------解决方案--------------------
Returns a single line of buffered information, excluding a final newline character. You should declare the actual for this parameter as VARCHAR2 (32767) to avoid the risk of "ORA-06502: PL/SQL: numeric or value error: character string buffer too small".

------解决方案--------------------
http://www.itpub.net/thread-860830-1-1.html
看看这个对你有帮助吗
------解决方案--------------------
探讨
单步调试了一下,在最后打开游标的时候报错,显然不是变量长度的问题。是缓存区太小??

------解决方案--------------------
An arithmetic, numeric, string, conversion, or constraint error occurred. For example, this error occurs if an attempt is made to assign the value NULL to a variable declared NOT NULL, or if an attempt is made to assign an integer larger than 88 to a variable declared NUMBER(2).
------解决方案--------------------
步调一下了。看一下日志。
------解决方案--------------------
探讨
引用:
步调一下了。看一下日志。

单步调试过了,整个存储过程都不报错,在最后OPEN CURSOR的时候提示“ORA-06502:PL/SQL:numeric or value error:character string buffer too small”。

------解决方案--------------------
ORA-06502:PL/SQL:numeric or value error:character string buffer too small.
这个错误在某些时候不一定是超长,可能是你在拼字符的时候有类型转换错误。

------解决方案--------------------
select lengthb(动态sql) from dual

select length(动态sql) from dual

看看动态sql 是否超长
------解决方案--------------------
探讨
nclob对象类型在存储过程中怎么使用?

------解决方案--------------------
你某个变量或某参数.定义长度太小了.检测代码,出错位置.