如果职员的工资高于1000,则提升其职位,并将其工资更新10%

jobtbby3  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(216)

编写一个参数光标程序,将收入超过1000的职员提升为高级职员,工资提高10%。将clerk作为参数传递给游标。使用cursor with update子句。
我的代码:

declare
  cursor c_promote(v_job varchar2) is 
  select empno from emp 
  where job=v_job and sal>1000 
  for update of job,sal nowait;
begin
  for emp_record in c_promote('CLERK') loop
    update emp set job='SR CLERK' 
    where empno=emp_record.empno;
    update emp set sal=sal+sal*0.1 
    where empno=emp_record.empno;
  end loop;
end;

我的代码做的工作,但我不觉得它是正确的,所以有人可以建议一个替代方案?

wko9yo5t

wko9yo5t1#

您可以创建一个小过程并传递v\u作业,然后在单个update语句中更新它,而不是使用游标

Update emp set job='SR CLERK' , sal=sal+sal*0.1
    where sal>1000 and job = v_job;

相关问题