이전글에 이어서 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 |