夥計們我有以下問題:更新員工表
薪水低於經理薪水的50%的員工的薪水提高15%。 使用遊標,循環和更新編寫PL/SQL過程。
程序報頭 創建或替代過程inc_salary
是:
。如果他們的薪水增加超過其經理薪水的50%,則爲例外。
其實,我們可以直接像這樣做:
update emp e
set e.salary+=e.salary*0.15
where e.salary<(select e.mgr from emp e, group by e.mgr)
下面是該表的圖片:
但我不知道如何使用的程序。如果我聲明這樣,創建或替換程序inc_salary
,那麼它的參數應該是什麼?我們可以使用當然循環,如
declare
for r in (select * from emp e) loop
update emp e
set r.salary+=r.salary*0.15;
where r.salary<r.mgr
exception
if r.salary >r.mgr*1.15 then
dbms.output_putline(' it can't increase');
end loop;
end;
但是如何將它結合在一起?
只是講師需要和:D –
順便問一下,我怎樣才能連接e.mgr到e.empno? –
如果仔細觀察,就是'm.empno'。 – Rachcha