判断控制语句 if

【功能】
if是判断控制语句,用于在指定的条件下要执行某些语句时使用,如果if后面括号里的条件成立的话,就执行if与end if之前的语句,如果条件不成立,就跳过不执行,但如果有else关键字时,如果条件成立,执行if下面的语句,如果条件不成立,执行else下面的语句。

【格式】
begin
if (条件) then
添加符合条件后要执行的语句
end if;
end;

begin
if (条件) then
添加符合条件后要执行的语句
else
添加不符合条件后要执行的语句
end if;
end;

【示例1】
需求场景:在执行存储过程时,为了避免输入参数(iv_month 统计月份),因手误而输入了空值,可能导致存储过程中的语句不能正常运行,所以在其它语句运行之前,用if语句先判断一下输入参数是否为空值,如果为空值,就直接报错退出,不再执行下面的语句,如果不为空值,则正常执行下面的其它语句。
create procedure pdw_xx
(
iv_month in varchar2,
oi_return out integer
)
is
vi_err_code integer;
vv_err_msg varchar2(200);
exc_error exception;
begin
if (iv_month is null) then
vi_err_code := -1;
vv_err_msg := ‘没有输入统计月份参数’;
raise exc_error;
end if;
end;

【示例2】
需求场景:在数据处理之前校验源表中是否有数据,如果表中没有数据,就发出“没有数据”的通知。
declare
i_cnt integer;
begin
select count(*) into i_cnt from txx;
if (i_cnt=0) then
dbms_output.put_line(‘没有数据’);
end if;
end;

【示例3】
需求场景:判断下载量是否超过阀值(阀值设置为5),如果超过阀值,就发出预警,如果没有超过阀值,就继续监控。
declare
v_cnt integer;
begin
select count(*) into v_cnt from tdw_music_dnld_d where statis_date = 20130601;
if (v_cnt>=5) then
dbms_output.put_line(‘发出预警’);
else
dbms_output.put_line(‘继续监控’);
end if;
end;

【示例4】
需求场景:判断下载量是否超过阀值(阀值设置为5),如果超过阀值,就发出预警,如果没有超过阀值,就继续监控。
declare
v_cnt integer;
begin
select count(*) into v_cnt from tdw_music_dnld_d where statis_date = 20130601;
if (v_cnt>=5) then
dbms_output.put_line(‘发出预警’);
elsif … then
elsif … then
elsif … then
dbms_output.put_line(‘继续监控’);
end if;
end;

【注意事项】
1.if语句是可以嵌套的,即if语句里面还可以再包含if语句;
begin
if (条件) then
if (条件) then
end if;
end if;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值