PL/SQL選擇結構和循環
選擇結構
if 單分支
if 判斷條件 then
----執行語句
end if;
if-else 分支
if 判斷條件 then
—執行語句
else
—執行語句
end if;
if 多分支
if 判斷條件 then
·····
elsif 判斷條件 then
·····
elsif 判斷條件 then
·····
else
·····
end if;
示例:
declare
--定義四個變量
v_job test_emp.job%type;
v_sal number(10);
v_empno test_emp.empno%type :=&no;
v_oldsal number(10);
begin
--查詢職位和工資
select job,sal into v_job,v_oldsal from test_emp where empno=v_empno;
--如果職位爲MANAGER,工資加100,下同
if 'MANAGER'=v_job then
v_sal := 100;
elsif 'SALESMAN'=v_job then
v_sal := 50;
elsif 'CLERK'= v_job then
v_sal := 10;
else
v_sal := 0;
end if;
--爲不同職位的員工加工資
update test_emp set sal=v_oldsal+v_sal where empno=v_empno;
commit;
end;
case 選擇
語法:
case 變量
when 條件 then
…………
when 條件 then
…………
else
…………
end case;
declare
v_job test_emp.job%type;
v_add number(10);
v_empno test_emp.empno%type := &no;
v_oldsal test_emp.sal%type;
begin
select job,sal into v_job,v_oldsal from test_emp where
empno=v_empno;
case v_job
when 'MANAGER' then
v_add := 100;
when 'SALESMAN' then
v_add := 50;
when 'CLERK' then
v_add := 10;
else
v_add :=0;
end case;
update test_emp set sal=v_oldsal+v_add where empno=v_empno;
commit;
end;
循環控制(loop中的三種循環)
exit循環
declare
v_i number(2) :=1;
begin
loop
exit when v_i>10;
dbms_output.put_line(v_i);
v_i :=v_i+1;
end loop;
end;
for 循環
---- 從 100 開始到 110 結束循環輸出
declare
v_aaa number(10) ;
begin
--從小到大的循環
for v_aaa in 100 .. 110 loop dbms_output.put_line(v_aaa);
end loop;
end;
--- 反轉輸出
declare
v_aaa number(10) ;
begin
--從大到小的循環•
for v_aaa in reverse 100..110 loop dbms_output.put_line(v_aaa);
end loop;
end;
while 循環
declare
v_index binary_integer :=100;
begin
while v_index<120 loop
dbms_output.put_line(v_index);
v_index := v_index+1;--沒有這個會進入死循環
end loop;
end;
更多相關知識敬請關注哦,猛戳主頁,謝謝!