개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

- CURSOR FOR LOOP

 

CURSOR FOR LOOP는 Explicit CURSOR안에 있는 모든 Row들을 처리합니다. 따라서 CURSOR의 FETCH문에서 모든 데이터를 다 처리하기 위해 %NOTFOUND속성을 이용해야 하는 경우에 사용하면 유용합니다. 이 CURSOR는 내부적으로 OPEN되고, FETCH되고 나서 CLOSE되기 때문에 DECLARE절에서 선언만 하고 사용하면 됩니다. CURSOR의 데이터를 읽어 올 변수를 선언할 필요가 없습니다.

 

 

 

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

- Explicit CURSOR의 Attribute

Implicit CURSOR 사용할 때와 마찬가지로 Explicit CURSOR에 대한 상태 정보를 구하는 4가지 Attribute가 있습니다. CURSOR명 뒤에 Attribute를 붙여서 씁니다

 

 

[예제13]  S_ITEM 테이블에서 주문번호를 입력받아 각 상품에 해당하는 주문액과 총금액을 출력하시오

 

 

 

 

 

 

 

 

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

[예제12] 주문번호를 입력받아 S_ITEM 테이블에서 해당되는 주문내역을 삭제하시오. 그리고 그 삭제결과에 따라 Message를 출력하면 다음과 같습니다.

2. OPEN 단계

OPEN cursor명; 

OPEN문은 참조되는 변수를 연결하고, SELECT문을 실행합니다. SELECT로 검색된 Row들을 Active Set이라고 부르며, FETCH 단계에서 사용할 수 있게 됩니다. CURSOR는 Active Set을 생성한 다음, 첫번째 Row에 Pointer를 위치시켜 가리키게 됩니다. CURSOR를 OPEN할 때 검색된 Row가 없어도 에러를 발생하지 않습니다. FETCH를 한 후에 CURSOR의 Attribute를 살펴서 알아볼 수 있습니다.

 

3. FETCH 단계

FETCH cursor명 INTO 변수1, 변수2,...; 

FETCH문은 CURSOR로부터 Pointer가 존재하는 Record의 값을 변수에 전달해 줍니다. 그리고, Pointer는 Active Set의 다음 Record로 이동합니다. CURSOR를 선언할 때 사용된 SELECT문장의 컬럼과 같은 개수, 같은 데이터 타입의 변수를 FETCH문의 INTO절에 기술합니다. FETCH문에서는 FETCH될 Record가 없는 경우에도 에러를 발생하지 않으므로 Record를 포함하고 있는지를 확인합니다.


4. CLOSE 단

 CLOSE cursor명; 

CLOSE문은 Record의 Active Set을 닫아 주고, 다시 새로운 Active Set을 만들어 OPEN할 수 있게 해줍니다.

+ Recent posts