记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

oracle 使用PL/SQL与游标(CURSOR),循环(loop),条件(if)来更新数据。


declare
  CURSOR emp_cursor is
    SELECT ename, sal FROM emp FOR UPDATE;
  emp_record emp_cursor%ROWTYPE;
begin
  OPEN emp_cursor;
  LOOP
    FETCH emp_cursor
      INTO emp_record;
    EXIT WHEN emp_cursor%NOTFOUND;
    if emp_record.sal < 2000 THEN
      UPDATE emp SET sal = sal * 1.1 where CURRENT of emp_cursor;
    end if;
  end loop;
  commit;
end;
/

本PL/SQL块使用了loop语句取的了所有雇员的姓名与工资,并且使用了条件控制语句(if)判断雇员工资,如果低于2000,则给该雇员增加10%的工资。

使用sqldeveloper工具执行时,commit 只能放到end loop 之后,不能放到之前或是end if 之前。




转载请标明出处【oracle 使用PL/SQL与游标(CURSOR),循环(loop),条件(if)来更新数据。】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论