oracle存储过程IF判断的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 存储过程中 如果用if语句判断一条查询语句的结果集是不是为空

oracle 存储过程中 如果用if语句判断一条查询语句的结果集是否为空。
希望的效果是:判断If (查询结果为空),then 创建一条记录。

参考技术A 已经经过测试,可以。

create table test1023(id int); --创建测试表 test1023

declare cnt int;
begin
select count(*) into cnt from test1023;
if cnt=0 then
insert into test1023 values('1');
commit;
end if;
end;本回答被提问者采纳

以上是关于oracle存储过程IF判断的问题的主要内容,如果未能解决你的问题,请参考以下文章

oracle 存储过程中 如果用if语句判断一条查询语句的结果集是不是为空

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

oracle存储过程中写IF ELES

Oracle存储过程——日常记录

oracle 存储过程里的if else

oracle 存储过程 判断字段中是不是包含指定的字符,该怎么解决