【发布时间】:2014-03-06 18:12:41
【问题描述】:
我从here 注意到,数字数据类型的预期宽度动态设置为您需要的任何值,精度最高可达 21 个字节,但是我可以在我的代码中看到该行
MAX_LENGTH CONSTANT NUMBER := 2000;
正在抛出错误:
BEGIN
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "DBAuser.MAKE_VIEWS", line 58
我是否误解了错误,或者 CONSTANT 修饰符是否可能会改变我不期望的东西?是否有系统级别的设置可以改变数字类型的默认宽度?
编辑以反映更准确的标题 - 问题是我正在查看我认为是第 58 行的内容,但实际上不是
【问题讨论】:
-
错误不在第 1 行,而是在第 58 行,那行有什么?在这个对象上:
DBAuser.MAKE_VIEWS -
@JorgeCampos 是的,我复制的行是第 58 行 - 我明白 :)
-
您显示的作业与字符转换无关,这就是失败的原因。我发现有时报告的行号不是实际的失败行。您是否有任何
TO_CHAR电话,或者您是否在某处将数字连接到字符串? -
查询
USER_SOURCE得到真正的58行 -
感谢@JeffreyKemp - 重新编译包并按照建议查询用户源 - 必须追溯一些文件,但罪魁祸首是在比我正在查看的更有意义的一行上找到的。 ..您想重写您的评论作为答案,我可以将其标记为解决方案?