목차
🔎 Cursor 란?
커서는 쿼리 결과셋을 탐색할 수 있는 포인터 입니다. DB 는 쿼리 결과 데이터를 반환할 때, 커서(cursor) 를 생성하여 현재 어디까지 데이터가 반환됐는지, 어디부터 읽으면 될지를 알 수 있습니다.
주로 프로그램 내에서 루프를 돌며 한 줄씩 데이터를 처리할 필요가 있을 때 사용합니다.
✅ Cursor 사용법
1. DECLARE - Cursor 선언 및 생성
커서를 사용하고 싶은 쿼리가 있으면 아래 SQL 을 이용해 커서를 정의 및 생성해줍니다.
DECLARE cursor_name CURSOR FOR |
2. OPEN - Cursor 열기
생성된 커서를 사용하기 위애 열어줍니다. 이때, 커서를 사용하기 위한 SQL 문이 실행돼 결과 데이터가 메모리에 올라가고 커서는 데이터의 첫번째 행을 가르키게 됩니다.
OPEN cursor_name; |
3. Fetch - 데이터 가져오기
커서를 한행씩 이동시키면서 기르키고 있던 값을 변수에 저장합니다.
FETCH NEXT FROM cursor_name INTO @id, @name; |
조회된 전체데이터를 읽을때까지 루프를 돌면서 데이터를 가져옵니다.
WHILE @@FETCH_STATUS = 0 |
4. CLOSE - 커서 닫기
사용이 끝난 커서를 닫아줍니다. 커서가 닫히면서 바라보고 있던 테이블과의 관계도 끊기돼 더 이상 커서를 사용할 수 없습니다.
CLOSE cursor_name; |
5. DEALLOCATE - 커서와 관련된 리소스 해제
커서를 사용하기 위해 점유하고 있던 리소스들을 모두 해제해 줍니다. 이때 메모리에 올라간 결과 데이터도 내려오게 됩니다.
DEALLOCATE cursor_name; |