当我收到procedure
时,我正在oracle中写variable as rowtype
。
我正在尝试achieve
基于loop
FOR idx in 1..10 LOOP
IF POST.SI_AMOUNT||idex <> 0 THEN
NULL;
END IF;
END LOOP;
我在表中有这样的列
SI_AMOUNT1,
SI_AMOUNT2,
SI_AMOUNT3,
SI_AMOUNT4,
SI_AMOUNT5,
SI_AMOUNT6,
SI_AMOUNT7,
SI_AMOUNT8,
SI_AMOUNT9,
SI_AMOUNT10
我想通过使用for循环检查所有列值。这在甲骨文有可能吗?
答案 0 :(得分:1)
首先,您的表格设计看起来违反了First normal form。如果你修复了这个错误,我想,你将不再需要以这种方式迭代抛出一列。
接下来,您编写的语句POST.SI_AMOUNT||idex <> 0
表示获取POST.SI_AMOUNT
变量的值,将其与idex
变量的值连接,并使用隐式将连接结果与零进行比较数据类型转换。
最后,PL / SQL与其他非脚本语言一样,无法迭代抛出变量列表。没有任何能力比直接使用10个IF
条件更简单,但正如我所说,最好的方法是重新设计表格并完全消除这种需求。