Notice
Recent Posts
Recent Comments
Link
투케이2K
31. (MSSQL/SQL) 커서 CURSOR 사용해 테이블 행 조회 결과 출력 실시 - CURSOR FOR OPEN , FETCH NEXT FROM 본문
MsSqlDB
31. (MSSQL/SQL) 커서 CURSOR 사용해 테이블 행 조회 결과 출력 실시 - CURSOR FOR OPEN , FETCH NEXT FROM
투케이2K 2021. 10. 3. 17:54[개발 환경 설정]
개발 툴 : SSMS
개발 언어 : MSSQL
[소스 코드]
/*
[커서 CURSOR 사용해 테이블 행 조회 결과 출력 실시 - CURSOR FOR OPEN , FETCH NEXT FROM]
1. CURSOR FOR OPEN - 커서 생성 및 오픈을 실시합니다
2. FETCH NEXT : 현재 행의 바로 다음 행 결과를 반환합니다
3. @@FETCH_STATUS = 0 : FETCH 문이 성공적으로 수행된 경우를 나타냅니다
4. CLOSE : 오픈한 커서를 닫습니다
5. DEALLOCATE : 커서와 커서 이름 또는 커서 변수 간의 연결을 제거합니다
*/
DECLARE
-- [커서 선언 부분]
V_CURSOR CURSOR FOR
SELECT T_IDX, T_NAME, T_DEPT
FROM TEST_USER
WHERE T_DEPT IN ('백제', '후백제')
ORDER BY CONVERT(VARCHAR, T_DEPT) ASC;
OPEN V_CURSOR
DECLARE
-- [초기 변수 선언 부분]
@V_IDX AS VARCHAR(100),
@V_NAME AS VARCHAR(100),
@V_DEPT AS VARCHAR(100);
-- [FETCH NEXT : 현재 행의 바로 다음 행 결과 반환]
FETCH NEXT FROM V_CURSOR INTO @V_IDX, @V_NAME, @V_DEPT;
-- [WHILE 반복 구문 선언 : FETCH 문이 성공적으로 수행된 경우]
WHILE(@@FETCH_STATUS = 0)
BEGIN
-- [단계별 결과 출력 실시]
PRINT 'V_IDX : ' + CONVERT(VARCHAR, @V_IDX);
PRINT 'V_NAME : ' + CONVERT(VARCHAR, @V_NAME);
PRINT 'V_DEPT : ' + CONVERT(VARCHAR, @V_DEPT);
-- [단계별 ROW 값 지정 실시]
SELECT @V_IDX AS 'IDX', @V_NAME AS 'NAME', @V_DEPT AS 'DEPT'
FETCH NEXT FROM V_CURSOR INTO @V_IDX, @V_NAME, @V_DEPT;
END;
CLOSE V_CURSOR;
DEALLOCATE V_CURSOR;
[결과 출력]
[요약 설명]
/*
[커서 CURSOR 사용해 테이블 행 조회 결과 출력 실시 - CURSOR FOR OPEN , FETCH NEXT FROM]
1. CURSOR FOR OPEN - 커서 생성 및 오픈을 실시합니다
2. FETCH NEXT : 현재 행의 바로 다음 행 결과를 반환합니다
3. @@FETCH_STATUS = 0 : FETCH 문이 성공적으로 수행된 경우를 나타냅니다
4. CLOSE : 오픈한 커서를 닫습니다
5. DEALLOCATE : 커서와 커서 이름 또는 커서 변수 간의 연결을 제거합니다
*/
반응형
'MsSqlDB' 카테고리의 다른 글
Comments