IF 条件1为真 THEN
<语句组1>
ELSIF 条件2为真 THEN
<语句组2>
ELSE
<语句组3>
END IF;
CASE 条件
WHEN 条件1为真 THEN <语句组1>
WHEN 条件2为真 THEN <语句组2 >
ELSE
<语句组3>
END CASE;
下面就是一个例子
declare
v_sal emp.sal%type;
begin
select sal into v_sal from emp
where empno = 7369;
if (v_sal < 1200) then
dbms_output.put_line('low');
elsif(v_sal < 2000) then
dbms_output.put_line('middle');
else
dbms_output.put_line('high');
end if;
end;
循环控制之LOOP
LOOP<语句组1>
EXIT [WHEN <条件>];
<语句组2>
END LOOP;
declare
j binary_integer := 1;
begin
loop
dbms_output.put_line(j);
j := j + 1;
exit when (j>=11);
end loop;
end;
循环控制之WHILE
WHILE <条件> LOOP
<语句组>
END LOOP;
DECLARE
I NUMBER :=100 ;
SUMM NUMBER := 0 ;
BEGIN
WHILE I>0 LOOP
SUMM:=SUMM+I;
I:=I-1;
END LOOP;
DBMS_OUTPUT.PUT_LINE(SUMM);
END;
循环控制之FOR
FOR <循环变量> IN [REVERSE] <下界..上界>
LOOP
<语句组>
END LOOP;
DECLARE
SUMM NUMBER := 0 ;
BEGIN
FOR I IN REVERSE 1..100 LOOP
SUMM:=SUMM+I;
DBMS_OUTPUT.PUT_lINE('I is '||I);
END LOOP;
DBMS_OUTPUT.PUT_lINE(SUMM);
END;