PL/SQL 커서, Where Current Of, PLSQL Cursor, PK, ROWID, 오라클 PLSQL에서 커서다루기, 자바학원, 자바교육, 오라클학원, JAVA학원
http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=710
ojc.asia
https://www.youtube.com/watch?v=HKy8Nk6nwQ0&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=17

https://www.youtube.com/watch?v=8hc030THr8w&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=16

https://www.youtube.com/watch?v=RMJTLEHE9vY&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=14

오라클 PL/SQL
Where Current Of Cursor
강의 : 이종철
WHERE CURRENT OF 커서
- ROWID, PK 컬럼을 이용하지 않고 현재 커서가 참조하는 행을 갱신하고 삭제하는 방법을 제공 합니다. 코드를 조금 줄여주는 이점외에 별 이점이 없으며, rowid를 이용하여 실무에서 많이 사용 합니다.
- SELECT FOR UPDATE로 읽어 들인 행은 Exclusive Lock을 거니 조심해야 한다. 해당 테이블에 대해 다른 세션에서 변경하지 않은 편안한 시간에 작업을 하는 것이 좋습니다.
[실습]
사원 테이블에서 10번 부서 사원들을 읽어 급여(SAL) 2000 보다 크면 급여에 10을 더하고 작으면 20을 더하세요
-- PK를 이용한 방법
DECLARE
CURSOR c_emp IS SELECT empno, ename, sal FROM emp WHERE DEPTNO = 10;
BEGIN
FOR emp_rec IN c_emp LOOP
DBMS_OUTPUT.PUT_LINE(emp_rec.ename || ',' || emp_rec.sal);
IF emp_rec.sal < 2000 THEN
UPDATE emp SET sal = sal + 20
where empno = emp_rec.empno;
ELSE
UPDATE emp SET sal = sal + 10
where empno = emp_rec.empno;
END IF;
END LOOP;
END;
/
CLARK,2450
MILLER,1300
select ename, sal from emp where deptno = 10;
CLARK 2460
MILLER 1320
rollback;
-- rowid를 이용한 방법
DECLARE
CURSOR c_emp IS SELECT rowid, empno, ename, sal FROM emp WHERE DEPTNO = 10;
BEGIN
FOR emp_rec IN c_emp LOOP
DBMS_OUTPUT.PUT_LINE(emp_rec.ename || ',' || emp_rec.sal);
IF emp_rec.sal < 2000 THEN
UPDATE emp SET sal = sal + 20
where rowid = emp_rec.rowid;
ELSE
UPDATE emp SET sal = sal + 10
where rowid = emp_rec.rowid;
END IF;
END LOOP;
END;
/
-- WHERE CURRENT OF 커서를 이용한 방법
DECLARE
CURSOR c_emp IS SELECT ename, sal FROM emp WHERE DEPTNO = 10 FOR UPDATE;
BEGIN
FOR emp_rec IN c_emp LOOP
DBMS_OUTPUT.PUT_LINE(emp_rec.ename || ',' || emp_rec.sal);
IF emp_rec.sal < 2000 THEN
UPDATE emp SET sal = sal + 20;
WHERE CURRENT OF c_emp;
ELSE
UPDATE emp SET sal = sal + 10
WHERE CURRENT OF c_emp;
END IF;
END LOOP;
END;
/
#PL/SQL, #WhereCurrentOf,#PLSQL, #Cursor, #오라클커서, #오라클CURSOR, #오라클교육, #오라클학원, #오라클동영상, #SQL학원, #SQL교육, PL/SQL, WhereCurrentOf,PLSQL, Cursor, 오라클커서, 오라클CURSOR, 오라클교육, 오라클학원, 오라클동영상, SQL학원, SQL교육,