伙计们,我有以下问题:
对工资低于经理工资 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;
但是如何将它们结合在一起呢?