对于具有 NULL 值的循环变量

Posted

技术标签:

【中文标题】对于具有 NULL 值的循环变量【英文标题】:For loop variable having NULL value 【发布时间】:2011-10-24 17:31:47 【问题描述】:

我有这个变量声明

counter INTEGER := 0;        /* loop counter */

然后是像这样的for循环

FOR counter IN 1 .. CEIL(records / batch)
LOOP

执行点一到这里就抛出执行。

ORA-01086: savepoint 'SP1' never established in this session or is invalid
ORA-06512: at "MALI521.PRVSAPUPD", line 421
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line 8

现在 SP1 保存点已在 for 循环中建立。代码在 for 循环出现时失败,因为那里的计数器变量具有 NULL 值。

有什么想法吗?

请删除它。我想通了。

【问题讨论】:

x.509 没有删除这个问题。请发布您自己的答案。我相信其他人会觉得它很有帮助。 【参考方案1】:

您确定counter 是问题所在吗? recordsbatch 的值是多少

【讨论】:

你是说这是被零除还是什么引起的? (看一个类似的问题,偶然发现了这个问题,但内容并不多。) 这是一种选择。我的另一个想法是将recordsbatch 设置为null,任何除以null 的东西都会返回null 我遇到了同样的问题。是的,如果记录或批次为空,它将在 for 语句行抛出 ORA-06512 错误。

以上是关于对于具有 NULL 值的循环变量的主要内容,如果未能解决你的问题,请参考以下文章

在具有不同变量名称的循环中保存

遍历具有通用名称的变量

为数组中的变量分配新值的forEach循环不会替换变量的值[重复]

android databinding啥时候会是null

同时覆盖具有相同值的变量是不是安全?

如何声明多个具有相同值的变量