みんな私は次の問題を抱えています:
上司の給与の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;
しかし、それをどのように組み合わせるのですか?