오라클 묵시적 커서(IMPLICIT CURSOR)
SQL문이 실행 될 때 오라클 서버에
의해 자동으로 생성되는 커서로 자동으로 Closing 된다. INSERT, UPDATE, DELETE가 실행될 때도 묵시적 커서가
생성되는데 INSERT인 경우 커서는 INSERT되는 데이터를 가리키며 UPDATE, DELETE가 실행되는 경우 커서는 DML에 의해 영향을
받는 레코드를 가리킨다. 가장 최근에 만들어진 묵시적 커서에 대한 속성을 제공한다.
Attribute
Description %FOUND SELECT, INSERT, UPDATE, DELETE에 의해 영향을 받은 레코드가 한건 이상이면
TRUE, 아니면 FALSE를 리턴. %NOTFOUND %FOUND의 반대, SELECT, INSERT, UPDATE, DELETE에
의해 영향을 받은 레코드가 한건도 없으면 TRUE, 아니면 FALSE를 리턴. %ISOPEN 항상 FALSE, 묵시적 커서는 오라클
서버가 항상 사용 후 Closing. %ROWCOUNT SELECT, INSERT, UPDATE, DELETE에 의해 영향을 받은 레코드
건수를 리턴.
SQL> select ename, sal from emp where deptno = 10;
ENAME SAL ---------- ---------- CLARK 2450
KING 5000 MILLER 1300
-- EMP 테이블에서 10번 부서
사원들의 급여를 5% 인상 하시오. SQL> SET SERVEROUTPUT ON SQL> DECLARE
total_rows number(2); BEGIN UPDATE emp SET sal = sal + round(sal
* 5 / 100) WHERE deptno = 10; IF sql%notfound THEN
dbms_output.put_line('no emp selected'); ELSIF sql%found THEN
total_rows := sql%rowcount; dbms_output.put_line( total_rows || ' emps
selected '); END IF; commit; --커밋해버리면 커서의 속성을 알수 없으니 뒤쪽에서
Commit END; / 3 emps selected
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> select ename, sal from emp where deptno = 10;
ENAME
SAL ---------- ---------- CLARK 2573 KING
5250 MILLER 1365
|
댓글 없음:
댓글 쓰기