Oracle 存储过程 在循环裏面,怎麽写2个IF语句?不是IF...ELSE IF 哦 因为2个代码块都要判断
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 存储过程 在循环裏面,怎麽写2个IF语句?不是IF...ELSE IF 哦 因为2个代码块都要判断相关的知识,希望对你有一定的参考价值。
参考技术A if ... thenend if;
if ... then
end if;追问
這個我已經試過了,編譯不会出错但有警告,但运行的时候,第二个IF语句不会运行
追答那应该是别的问题 你把完整代码贴上来看看
本回答被提问者采纳 参考技术B 贴代码oracle存储过程IF判断的问题
你的if逻辑有问题:当输入37的时候
flag>5
肯定结果是1,不会进入else了。
你可以再第一行加上flag<=10
然后试试。
当然你下面的逻辑还有问题,你自己去琢磨琢磨,根据你的需求慢慢改吧!
if
flag>5
and
flag<=10
then
v_value
:=1;
elsif
flag>10
then
v_value
:=2;
elsif
flag<20
then
v_value
:=3;
elsif
flag<39
then
v_value
:=4;
else
v_value
:=5;
end
if;
实在搞不懂逻辑,可以用switch……case……这样清晰些。 参考技术A 问题1:当你传入37
时,IF
FLAG>5
已经满足条件了,直接V_VALUE
:=1;,不会继续判断了。然后就调到end
if。可以按f9调试,不信一步步看它的执行过程。
问题2:IF
V_NULL=NULL,不是这样写,是IF
V_NULL
IS
NULL
,就会输出888啦。
以上是关于Oracle 存储过程 在循环裏面,怎麽写2个IF语句?不是IF...ELSE IF 哦 因为2个代码块都要判断的主要内容,如果未能解决你的问题,请参考以下文章