티스토리 뷰

DATABASE/SQL

[SQL] CURSOR

진심스테이크 2018. 4. 24. 19:04

 

커서

- 처리 결과가 여러 개의 행으로 구해지는 SELECT문을 처리할 때 사용

 

 

 

 

1. Declare 커서

- 명시적으로 커서를 선언하기 위해 커서문장 사용

- 기본 형태

CURSOR 커서명 IS select_statement;

- select_statement : INTO절이 없는 SELECT 문장

 

2. Open 커서

- 질의 수행

- 검색 조건을 충족하는 모든 행으로 구성된 결과 SET을 생성하기 위해 커서를 OPEN

- 기본 형태

  OPEN 커서명;

 

3. Fetch 커서

- 결과 SET에서 로우 단위의 데이터를 읽어드림

- 각 FETCH후에 커서는 결과 SET에서 다음 행으로 이동

- 기본 형태

FETCH 커서명 INTO {variable1[,variable2, ....]};

- 커서가 끝에 위치하게 되면 반복문을 탈출해야함

- 단순 LOOP는 내부에 EXIT WHEN 문장을 포함하고 있다가 EXIT WHEN 다음에 기술한 조건에 만족하면 단순 LOOP를 탈출

- NOTFOUND : 커서의 상태를 알려주는 속성 중 하나

  -> 커서 영역 자료가 모두 FETCH 되었다면 TRUE를 돌림

 

4. CLOSE 커서

- 커서를 사용할 수 없게 하고 결과 SET의 정의를 해제

- SELECT 문장이 다 처리된 후에는 커서를 닫음

- 필요시 커서를 다시 열 수 있음

- 기본 형태

CLOSE 커서명;

 

#CURSOR FOR LOOP

- 명시적 커서에서 행을 처리

- LOOP에서 각 반복마다 커서를 열고 행을 FETCH하고, 모든 행이 처리되면 자동으로 커서가 CLOSE됨

 

 

'DATABASE > SQL' 카테고리의 다른 글

[SQL] ROLE  (0) 2018.04.24
[SQL] 보안  (0) 2018.04.23
[SQL] TRIGGER  (0) 2018.04.23
[SQL] SUBPROGRAM PACKAGE  (0) 2018.04.23
[SQL] PROCEDURE  (0) 2018.04.23
댓글