Oracle 存储过程 在循环裏面,怎麽写2个IF语句?不是IF...ELSE IF 哦 因为2个代码块都要判断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 存储过程 在循环裏面,怎麽写2个IF语句?不是IF...ELSE IF 哦 因为2个代码块都要判断相关的知识,希望对你有一定的参考价值。

参考技术A if ... then
end 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个代码块都要判断的主要内容,如果未能解决你的问题,请参考以下文章

Oracle(变量定义接收用户输入if语句循环语句)

oracle 存储过程 into 没找到数据 解决办法

oracle存储过程技术怎么就那么不规范?if else if 再多个else if就不能用了?

oracle存储过程中如何对一个变量累加赋值 最好有个例子

oracle存储过程IF判断的问题

Oracle loop循环while循环for循环if选择和case选择更改读取数据游标触发器存储过程