저장 프로시저 내에서 Cursor를 사용해야할 때가 가끔 있다...
예>
BEGIN
DECLARE x_done int DEFAULT 0;
DECLARE x_num int;
DECLARE x_name varchar(20);
DECLARE x_num int;
DECLARE x_name varchar(20);
DECLARE cur_TestCursor CURSOR FOR
SELECT num, name FROM MemberInfo;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET x_done = 1; /* 데이터가 없으면 x_done=1 */
SELECT num, name FROM MemberInfo;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET x_done = 1; /* 데이터가 없으면 x_done=1 */
OPEN cur_TestCursor;
REPEAT
FETCH NEXT FROM cur_TestCursor INTO x_num, x_name; /* 변수에 값을 담는다 */
IF NOT x_done THEN
/* 여기서 수행할 쿼리를 해준다 */
END IF;
UNTIL x_done END REPEAT; /* x_done이 1이 될때까지 반복된다 */
CLOSE cur_TestCursor;
END;
반응형