[오라클 PL/SQL] PL/SQL 커서(Cursor) FOR문으로 생성하기
- Database(데이터베이스)/Oracle
- 2019. 12. 4. 01:00
안녕하세요.
오늘은 오라클 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; |
실행 결과
위와 같이 SCHOOL_NO가 “1”인 학생들이 알맞게 출력된 모습을 보실 수 있습니다.
감사합니다.
'Database(데이터베이스) > Oracle' 카테고리의 다른 글
[오라클 SQL] 오라클 UNPIVOT 이용하여 컬럼을 로우로 전환(변환)하기 (0) | 2019.12.07 |
---|---|
[오라클 SQL] 오라클 PIVOT 절을 이용하여 로우를 컬럼으로 전환(변환)하기 (0) | 2019.12.06 |
[오라클 PL/SQL] PL/SQL 명시적 커서(Cursor) 사용 방법 (0) | 2019.12.03 |
[오라클 PL/SQL] PL/SQL 커서(Cursor)란? (0) | 2019.12.02 |
[오라클 PL/SQL] PL/SQL 예외처리 SQLCODE, SQLERRM 이용하여 예외 처리 하기 (0) | 2019.12.01 |
이 글을 공유하기