在执行 DB2 ( V8 ) 存储过程时,我收到以下错误:
SQL0304N 无法将值分配给主变量,因为该值不在主变量的数据类型范围内。SQLSTATE=22003
我没有设置任何类型的跟踪或特定的错误处理,并且由于错误只发生在我不允许使用的客户验证环境中,所以我没有太多选择,只能再次分析我的代码。
这是我当前分析的结果。谷歌帮不上什么忙……
我的“10 页”过程在一组数据上创建了一个 CURSOR,通过它并计算每个元素的值以将其插入表中。
我已经(希望)检查了我所有的变量类型与用于填充它们的数据类型以及目标表的数据类型,我没有看到任何冲突。
由于有很多十进制数、乘法和加法,我唯一的假设是计算值对于定义的变量来说变得太大了。谁能确认那将是“正确的错误”?如果计算生成的小数点后的位数大于目标变量类型所允许的位数(例如十进制(6,2)中的 100000.123),它是否也适用?
我还试图找到一种通过客户端调试 db2 pl sql 的方法,但我没有找到任何解决方案。如果你有什么建议...
非常感谢您提供任何线索:)