Oracle 使用遊標修改或刪除資料
阿新 • • 發佈:2018-12-09
declare -- 定義遊標 cursor mycur is select empno,job from empnew for update; begin for record in mycur loop dbms_output.put_line(''||record.empno||'------'||record.job); if record.job='董事長' then update empnew set sal = sal + 1000 where current of mycur; elsif record.job='經理' then update empnew set sal = sal + 500 where current of mycur; else update empnew set sal = sal + 300 where current of mycur; end if; exit when mycur%notfound; end loop; commit; exception when others then dbms_output.put_line('出錯'||sqlerrm); rollback; end; select * from empnew;
-- 輸入部門編號,並刪除部門下的所有員工 declare cursor mycur is select d.deptname dname,e.ename ename from empnew e join dept1 d on e.deptno = d.deptno where e.deptno = &deptno for update of e.deptno; begin for record in mycur loop dbms_output.put_line('部門名稱:'||record.dname||'員工名稱:'||record.ename); delete from empnew where current of mycur; end loop; commit; exception when others then dbms_output.put_line('出錯'||sqlerrm); rollback; end; select * from empnew where deptno=10;