MS-SQL 프로시저 커서(CURSOR) 사용 법 에 대하여 알아봅시다

 

 

연말정산 계산 로직이나 연차 계산을 위해서 프로시저 커서(cursor) 를 사용하기도 합니다

개발 중 자주 사용되지는 않지만, 한번씩 사용되는 커서에 대하여 알아 보도록 합니다

 

단순히 조회 된 내용을 PRINT 명령어를 사용하여 메시지로 출력되게 하였습니다

실행하면 다음과 같은 결과 메시지를 볼 수 있습니다

 


DECLARE cur CURSOR            

  FOR     

   /****** 대상 조회 시작**********/                   

   SELECT '1' COL1, 'A' COL2

   UNION

   SELECT '2' COL1, 'B' COL2

   /****** 대상 조회 끝************/                      

           

  OPEN cur           

             

  DECLARE @COL1 VARCHAR(10)

  DECLARE @COL2 VARCHAR(10)

           

  --첫 로우 FETCH

  FETCH NEXT FROM cur INTO @COL1, @COL2

 

  --Fetch문이 정상 실행(0), 실패 또는 범위에서 벗어남(-1), 인출된 행이 없음(-2)

  --Fetch문이 정상 실행(0) 일 경우 계속 실행

  WHILE @@FETCH_STATUS = 0

  BEGIN           

              

/****** 실행 로직 시작**********/  

PRINT '[WHILE문 내부] @@FETCH_STATUS = '+ CONVERT(VARCHAR(10),@@FETCH_STATUS) + ', COL1 = ' + @COL1 + ', COL2 = ' + @COL2

/****** 실행 로직 끝************/           

   

    --다음 로우 FETCH       

FETCH NEXT FROM cur INTO @COL1, @COL2

  END 

 

  PRINT '[WHILE문 종료 후] @@FETCH_STATUS = '+ CONVERT(VARCHAR(10),@@FETCH_STATUS)    

            

  --커서 CLOSE           

  CLOSE cur           

              

--커서 DEALLOCATE

DEALLOCATE cur

 

 

이상 커서에 대하여 알아보았습니다

 


 

Posted by JOY [바가지]
TAG ,

댓글을 달아 주세요