-- 같은이름의프로시저있으면삭제
DROP PROCEDURE IF EXISTS cursor_test;
DELIMITER $$
CREATE PROCEDURE cursor_test()
BEGIN
-- 반복문변수선언
DECLARE done INTEGER DEFAULT 0;
-- 커서에서사용할변수선언
DECLARE v_aaa varchar(10);
DECLARE v_bbb varchar(10);
-- 커서에서사용할Select 테이블선언
DEClARE openCursor CURSOR FOR SELECT aaa, bbb FROM testTable;
-- 반복문핸들러선언
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;
-- 커서오픈
OPEN openCursor;
-- 반복문시작
read_loop: LOOP
-- 커서에서데이터가져옴
FETCH openCursor INTO v_aaa, v_bbb;
-- 반복문종료시조건
IF done THEN
LEAVE read_loop;
END IF;
-- 조건에맞는데이터데이터찾아서변수에임시저장
Select @codeName := codeName From codeTable Where codeCode = v_bbb;
-- 테이블에저장
insert into `insertTable` (`iCode`, `iCodeName`) values(v_bbb, @codeName);
-- 반복문끝
END LOOP read_loop;
-- 커서해제
CLOSE openCursor;
END$$
DELIMITER ;
-- 프로시저실행
CALL cursor_test();
'프로그래밍 > MS_SQL' 카테고리의 다른 글
MSSQL 테이블 COMMENT 보기 (0) | 2015.04.29 |
---|---|
MSSQL IDENTITY 값 재 설정 (0) | 2015.04.27 |
MSSQL 자동 증가 시드값 가져오기 (0) | 2015.04.27 |
sqlexpress 백업 및 복원 (0) | 2015.04.24 |
mssql 파일 크기 줄이기 (0) | 2015.04.14 |