loading

프로그래밍/MS-SQL

CURSOR 실습 - (2)

침착곰 2016. 4. 13. 15:36
반응형

이전글에 이어서 CURSOR를 실습한 내용입니다.

밑의 내용은 커서에 대해서 간단하게 설명한 내용입니다.

1
2
3
4
5
6
DECLARE test_cursor [INSENSITIVE] [SCROLL]
CURSOR FOR SELECT * FROM temptables
OPEN test_cursor
FETCH NEXT FROM test_cursor
CLOSE test_cursor
DEALLOCATE test_cursor
cs

----------------------------------------------------------------설명

+ DECLARE test_cursor CURSOR FOR SELECT * FROM temptables

--> DECLARE으로 CURSOR를 선언하는 부분입니다.

여기서 FOR 구문 뒤에 CURSOR에 삽입 시켜줄 SELECT 구문을 적용하면 됩니다.

+ OPEN test_cursord

--> 생성된 test_cursor를 사용하기 위해 OPEN을 시켜줍니다.

OPEN은 SELECT결과 집합을 채우는 역할을 합니다.

*커서는 사용전에 반드시 OPEN을 해야한다!!!!

+ FETCH NEXT FROM test_cursor

--> 커서의 값을 한줄 씩 읽어옵니다.

FETCH는 CURSOR가 가지고 있는 결과 집합에서 행을 반환합니다.

+ CLOSE test_cursor

--> OPEN된 커서를 닫아줍니다.

*커서와 연결 된 결과 집합을 해제합니다.

+ DEALLOCATE test_cursor

--> 커서가 제거됩니다. (커서에서 사용된 리소스를 해제합니다.)

----------------------------------------------------------------요약

CURSOR FOR 'QUERY'[커서 생성] -> OPEN[커서 사용준비] -> FETCH[커서 사용] -> CLOSE[커서 사용해제] -> DEALLOCATE[커서 삭제]



이것은 CURSOR를 사용해서 내가 실습해본 내용이다.

- CURSOR를 이용하여 PRINT함수로 출력해보겠습니다.

위의 Temp테이블 실습을 통해서 만든 #KimTable을 이용해서 CURSOR예제 응용 실습을 해보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
DECLARE @APP_DATE VARCHAR(8), @SIGN_TYPE VARCHAR(10)
DECLARE test_cursor2 CURSOR FOR SELECT APP_DATE, SIGN_TYPE
FROM #KimTable
OPEN test_cursor2
FETCH NEXT FROM test_cursor2 INTO @APP_DATE, @SIGN_TYPE
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'APP : ' + @APP_DATE + ', SIGN : ' + @SIGN_TYPE
FETCH NEXT FROM test_cursor2 INTO @APP_DATE, @SIGN_TYPE
END
CLOSE test_cursor2
DEALLOCATE test_cursor2
cs

CURSOR는 이런식으로 사용됩니다.

다음 글에서는 CURSOR를 약간 더 응용해서 만든 CURSOR문을 보면서 CURSOR에 대해서 알아보겠습니다.

다음 글 : CURSOR 실습 - (3)

참고 : http://infodbbase.tistory.com/34

반응형
그리드형

'프로그래밍 > MS-SQL' 카테고리의 다른 글

SQL문 실습 - Date Function(2)  (0) 2016.04.15
CURSOR 실습 - (3)  (0) 2016.04.13
CURSOR란? - (1)  (0) 2016.04.13
Temp Table이란?  (0) 2016.04.13
SQL문 실습 - Date Function(1)  (0) 2016.04.13