HPL/SQL - DECLARE CURSOR 문

HPL/SQL - DECLARE CURSOR 문

DECLARE CURSOR 문은 동적 SQL을 사용해 커서를 선언할 때 사용해요. 행 단위로 결과를 처리해야 할 때 커서가 유용해요.

출처: 문서

본문

동적 SQL을 사용해 커서를 선언하려면 DECLARE CURSOR 문을 사용할 수 있습니다.

구문:

DECLARE name CURSOR FOR | AS | IS dynamic_sql_string | select_statement;

매개변수:

매개변수 타입 설명
dynamic_sql_string VARCHAR 변수 또는 표현식 커서를 정의할 동적 SQL
select_statement 커서를 정의할 SQL SELECT 문

참고 사항:

  • dynamic_sql_string 표현식은 선언 시점이 아니라 커서를 열 때(open time) 평가됩니다.

예제 1:

동적 SQL 문자열 사용하기:

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;

예제 2:

SQL SELECT 문 사용하기:

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

호환성: IBM DB2, MySQL, Teradata

같이 보기:

더 알아보기 (Learn more)

커서는 OPENFETCHCLOSE 순서로 사용해요. 선언한 커서를 실제로 여는 OPEN 문과 행을 가져오는 FETCH 문을 함께 보면 흐름이 더 명확해져요.