FETCH
는 SQL에서 결과 집합에서 행을 가져오는 명령어입니다. FETCH
명령어는 주로 CURSOR
와 함께 사용되며, 특히 서버 측에서 트랜잭션을 관리하거나 복잡한 조회 작업을 수행할 때 유용합니다.
일반적으로 FETCH
명령어는 CURSOR
를 열고, OPEN
, FETCH
, CLOSE
의 세 단계로 나뉩니다:
- OPEN:
CURSOR
를 열어 결과 집합을 가리키는 포인터를 생성합니다.DECLARE cursor_name CURSOR FOR SELECT column1, column2 FROM table_name WHERE condition; OPEN cursor_name;
- FETCH:
CURSOR
를 통해 결과 집합에서 행을 가져옵니다.FETCH
명령어는 반복적으로 호출하여 여러 행을 가져올 수 있습니다.FETCH cursor_name INTO variable1, variable2;
FETCH
명령어는 변수에 결과 집합의 현재 행을 가져오기 위해 사용됩니다.
- CLOSE:
CURSOR
를 닫아서 리소스를 해제합니다.CLOSE cursor_name;
FETCH
명령어는 일반적으로 FORWARD ONLY
형태의 CURSOR
에서 사용되며, SCROLL
형태의 CURSOR
에서는 FETCH
대신에 FETCH NEXT
, FETCH PRIOR
, FETCH FIRST
, FETCH LAST
등과 함께 사용될 수 있습니다.
아래는 FETCH
명령어의 간단한 사용 예제입니다:
DECLARE my_cursor CURSOR FOR SELECT employee_id, employee_name FROM employees;
OPEN my_cursor;
-- 여러 행을 가져오기 위해 반복문 사용
FETCH my_cursor INTO @emp_id, @emp_name;
WHILE @@FETCH_STATUS = 0
BEGIN
-- 처리 로직
PRINT 'Employee ID: ' + CONVERT(VARCHAR, @emp_id) + ', Employee Name: ' + @emp_name;
-- 다음 행 가져오기
FETCH my_cursor INTO @emp_id, @emp_name;
END
CLOSE my_cursor;
이 예제에서는 CURSOR
를 열고, FETCH
를 사용하여 결과 집합에서 행을 가져오고 처리하는 반복문이 사용되고, 마지막으로 CURSOR
를 닫습니다.