레이블이 Cursor인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Cursor인 게시물을 표시합니다. 모든 게시물 표시

2021년 12월 25일 토요일

PL/SQL 커서, Where Current Of, PLSQL Cursor, PK, ROWID, 오라클 PLSQL에서 커서다루기, 자바학원, 자바교육, 오라클학원, JAVA학원

 

PL/SQL 커서, Where Current Of, PLSQL Cursor, PK, ROWID, 오라클 PLSQL에서 커서다루기, 자바학원, 자바교육, 오라클학원, JAVA학원


http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=710 


PL/SQL 커서, Where Current Of, PLSQL Cursor, PK, ROWID, 오라클 PLSQL에서 커서다루기

PL/SQL 커서, Where Current Of, PLSQL Cursor, PK, ROWID, 오라클 PLSQL에서 커서다루기오라클 PL/SQLWhere Current Of Cursor강의 : 이종철WHERE CURRENT OF 커서ROWID, PK 컬럼을 이용하지 않고 현재 커서가 참조하는 행을 갱

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교육,  

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...