[오라클 PL/SQL] PL/SQL 커서(Cursor) FOR문으로 생성하기


안녕하세요.

 

오늘은 오라클 PL/SQL에서 커서를 생성할 때에 FOR문을 이용하여 생성하는 방법에 대해서 설명해 드리려고 합니다.

 

이전 포스팅에서 이미 반복문을 설명하면서 FOR문 구문을 설명 했었습니다.


 

다시 한번 간단히 보여 드리면,

 

FOR 문 구문


FOR 인덱스 IN [REVERSE] 초깃값최종값

LOOP

           처리문;

END LOOP;

 

위와 같습니다.

 

커서와 함께 FOR 문을 사용할 때에는, “초깃값..최종값대신 커서가 위치하게 됩니다.

 

커서가 함께 사용될 경우 FOR 문 형태


FOR 레코드 IN 커서명 (매개변수1, 매개변수2, ..)

LOOP

           처리문;

END LOOP;

 

위와 같이 생겼습니다.


 

그러면 실제 위의 구문을 토대로 FOR문 이용한 커서를 생성해 보도록 하겠습니다.

 

먼저, 아래와 같이 STUDENT 테이블이 있습니다.



여기서 SCHOOL_NO“1”인 학생들의 NAME을 출력하는 익명 블록을 커서를 이용하여 만들어 보도록 하겠습니다.

 

예제 코드


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

DECLARE 

    --커서 선언, SCHOOL_NO 매개변수로 받는다.

    CURSOR cur_stu_schNo ( cp_school_no WIN.STUDENT.SCHOOL_NO%TYPE)

    IS

    SELECT NAME

    FROM WIN.STUDENT

    WHERE 1 = 1

    AND SCHOOL_NO = cp_school_no;

    

BEGIN

    --FOR문을 통한 커서 패치 작업

    FOR stu_rec IN cur_stu_schNo('1')

    LOOP

        --학생  출력

        DBMS_OUTPUT.PUT_LINE(stu_rec.name);

    END LOOP;

END;

Colored by Color Scripter

cs

 

실행 결과



위와 같이 SCHOOL_NO“1”인 학생들이 알맞게 출력된 모습을 보실 수 있습니다.

 

감사합니다.


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY