Oracle中PL/SQL控制语句

1.IF语句语法如下

IF<布尔表达式>THEN

PL/SQL和SQL语句

END IF;

----------------------------------------------------------------------------------------------------------------------

IF<布尔表达式>THEN

PL/SQL和SQL语句

ELSE

其他语句

END IF;

-----------------------------------------------------------------------------------------------------------------------

IF<布尔表达式>THEN-

PL/SQL和SQL语句

ELSIF<其他布尔表达式>THEN

其他语句

ELSIF<其他布尔表达式>THEN

其他语句

ELSE

其他语句

END IF;

-------------------------------------------------------------------------------------------------------------------

示例代码:

declare
   v_counter number:=5;
begin
   dbms_output.put_line('v_counter的当前值为:'||v_counter);
   if v_counter>=10 then
      null;
   elsif v_counter>=20 then
      null;
   elsif v_counter>=30 then
      null;
   else
      v_counter:=v_counter+10;
      dbms_output.put_line('v_counter的改变后的值为:'||v_counter);
   end if;
end;
结果:

v_counter的当前值为:5
v_counter的改变后的值为:15




-----------------------------------------------------------------------------------------------------------------------------

2.CASE语法如下:

----------------格式1-----------------------------

CASE 条件表达式

WHEN 条件表达式结果1 THEN

语句段1

WHEN 条件表达式结果2 THEN

语句段2

WHEN 条件表达式结果n THEN

语句段n

[ELSE语句段]

END CASE;

示例代码:

declare
   v_counter number:=5;
begin
   case v_counter
   when 1 then
      dbms_output.put_line('1');
   when 2 then
      dbms_output.put_line('2');
   when 5 then
      dbms_output.put_line('5');
   else
      dbms_output.put_line('0');
end case;
end;
结果:

5


----------------格式2----------------------------------------------------------------

CASE

WHEN 条件表达式结果1 THEN

语句段1

WHEN 条件表达式结果2 THEN

语句段2

WHEN 条件表达式结果n THEN

语句段n

[ELSE语句段]

END CASE;

示例代码:

declare
   v_counter number:=5;
begin
   case
   when v_counter=1 then
      dbms_output.put_line('1');
   when v_counter=2 then
      dbms_output.put_line('2');
   when v_counter=5 then
      dbms_output.put_line('5');
   else
      dbms_output.put_line('0');
end case;
end;
结果:

5





------------------------------------------------------------------------------------------------------------------------------------------

2.循环控制

1)LOOP循环语法如下:

LOOP

要执行的语句;

EXIT WHEN<条件语句> --满足条件退出循环

END LOOP;

END;

示例代码:

declare
    v_counter number(5):=5;
begin
   loop
      dbms_output.put_line('v_counter = '||v_counter);
      v_counter:=v_counter+1;
      exit when v_counter > 10;
   end loop;
      dbms_output.put_line('LOOP循环已经结束!');
 end;

结果:

v_counter = 5
v_counter = 6
v_counter = 7
v_counter = 8
v_counter = 9
v_counter = 10
LOOP循环已经结束!





-------------------------------------------------------------------------------------------------------------------------------------------
2)WHILE循环语法如下:

WHILE<布尔表达式>LOOP

要执行的语句;

END LOOP;

示例代码:

declare
    v_counter number(5):=5;
begin
    dbms_output.put_line('v_counter='||v_counter);
    while v_counter=5 loop
    v_counter:=v_counter+1;
    end loop;
    dbms_output.put_line('v_counter='||v_counter);
end;

结果:

v_counter=5
v_counter=6





--------------------------------------------------------------------------------------------------------------------------------
3)FOR循环语法如下:

FOR循环计数器 IN [REVERSE]下限···上限 LOOP

要执行的语句;

END LOOP;

示例代码:

DECLARE
   a number(2);
BEGIN
   FOR b in 10 .. 20 LOOP
       dbms_output.put_line('b= ' || b);
  END LOOP;
END;

结果:

b: 10
b: 11
b: 12
b: 13
b: 14
b: 15
b: 16
b: 17
b: 18
b: 19
b: 20



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值