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 루프를 돌리면 모든 행을 끝까지 안전하게 순회할 수 있습니다.