HPL/SQL - FETCH 문

HPL/SQL - FETCH 문

FETCH 문은 커서(cursor)에서 다음 행을 가져와 로컬 변수(local variable)에 컬럼 값을 할당하는 문이에요. 커서를 반복적으로 읽어 처리할 때 핵심적으로 쓰입니다.

출처: 문서

본문

구문(syntax)은 다음과 같습니다.

FETCH [FROM] cursor_name INTO var1 [, var2, ...];

Parameters

Parameter Type Description
cursor_name Identifier 미리 열어둔(opened) 커서의 이름
varN Variable 로컬 변수

Examples:

DECLARE tabname VARCHAR DEFAULT 'db.orders';
DECLARE id INT;
DECLARE cur CURSOR FOR 'SELECT id FROM ' || tabname;
OPEN cur;
FETCH cur INTO id;
WHILE SQLCODE=0 THEN
  PRINT id;
  FETCH cur INTO id;
END WHILE;
CLOSE cur;

호환성: Oracle, IBM DB2, Teradata, SQL Server, MySQL, PostgreSQL, Netezza

참고: DECLARE CURSOR, OPEN, CLOSE, SQLCODE

더 알아보기 (Learn more)

커서를 열고(OPEN) FETCH로 행을 읽어 처리한 뒤 CLOSE로 닫는 흐름이 기본 패턴이에요. 예제처럼 SQLCODE=0 조건으로 while 루프를 돌리면 모든 행을 끝까지 안전하게 순회할 수 있습니다.