伙计们我有以下问题:更新员工表
薪水低于经理薪水的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