PL/SQL選擇結構和循環

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;

更多相關知識敬請關注哦,猛戳主頁,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章