1. 程式人生 > >控制結構【PL/SQL】

控制結構【PL/SQL】

1. if --then--end if ;

-- 編寫一個過程,可以輸入一個僱員名,如果該僱員的工資低於
-- 2000,就給該僱員工資增加10%
create or replace procedure update_sal_pro(chName varchar2) is
--定義變數
v_sal emp.sal%type;
begin
  --執行部分
  select sal into v_sal from emp where ename=chName;
  if v_sal<2000 then
    update emp set sal=sal*(1+0.1) where ename=chName;
  end if;
end;

2. if --then--else --endif;

-- 編寫一個過程,可以輸入一個僱員名,如果該僱員的補助不是0
-- 就在原來的基礎上增加100;如果補助為0就把補助設為200
create or replace procedure update2_pro(chName varchar2) is
v_comm emp.comm%type;
begin
  select comm into v_comm from emp where emp.ename=chName;
  if v_comm>0 then
    update emp set comm=comm+100 where ename=chName;
  else
    update emp set comm=200 where ename=chName;
  end if;
end;

3. if --then--elsif --else--endif;

-- 輸入一個僱員編號,如果是該僱員的職位是PRESIDENT就給他的工資增加1000
-- 如果是MANAGER,就給他加500
-- 其他加200.
create or replace procedure update3_pro(ch_empno number) is
v_job emp.job%type;
begin
  select job into v_job from emp where emp.empno=ch_empno;
  if v_job='PRESIDENT' then
    update emp set sal=sal+1000 where empno=ch_empno;
  elsif v_job='MANAGER' then
    update emp set sal=sal+500 where empno=ch_empno;
  else
    update emp set sal=sal+200 where empno=ch_empno;
  end if;
end;