Oracle中PL/SQL控制语句

来源:互联网 发布:钱永健贬低钱学森知乎 编辑:程序博客网 时间:2024/06/16 04:40

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的当前值为:5v_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 = 5v_counter = 6v_counter = 7v_counter = 8v_counter = 9v_counter = 10LOOP循环已经结束!





-------------------------------------------------------------------------------------------------------------------------------------------
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=5v_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: 10b: 11b: 12b: 13b: 14b: 15b: 16b: 17b: 18b: 19b: 20



原创粉丝点击