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