编写一个参数光标程序,将收入超过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;
我的代码做的工作,但我不觉得它是正确的,所以有人可以建议一个替代方案?
1条答案
按热度按时间wko9yo5t1#
您可以创建一个小过程并传递v\u作业,然后在单个update语句中更新它,而不是使用游标