커서형 레코드

    커서를 레코드 변수로 받는 것을 커서형 레코드라 하며, 이에 대해서는 앞 절의 커서 변수 부분에서 이미 소개한 바가 있다. 복습하는 차원에서 다시 설명하자면, 커서형 레코드 변수 역시 테이블형 레코드처럼 %ROWTYPE을 사용하는데 테이블명 대신 커서명%ROWTYPE 형태로 선언한다. 명시적 커서를 선언해 레코드 변수에 담고 다시 ch11_dep 테이블에 데이터를 넣어 보자.

    입력

        DECLARE
          -- 커서 선언
          CURSOR c1 IS
          SELECT department_id, department_name, parent_id, manager_id
            FROM departments;
    
          -- 커서형 레코드 변수 선언
          vr_dep c1%ROWTYPE;
    
        BEGIN
          -- 데이터 삭제
          DELETE ch11_dep;
    
          -- 커서 오픈
          OPEN c1;
    
          -- 루프를 돌며 vr_dep 레코드 변수에 값을 넣고, 다시 ch11_dep에 INSERT
          LOOP
            FETCH c1 INTO vr_dep;
    
            EXIT WHEN c1%NOTFOUND;
            -- 레코드 변수를 이용해 ch11_dep2 테이블에 데이터를 넣는다.
            INSERT INTO ch11_dep VALUES vr_dep;
    
          END LOOP;
    
          COMMIT;
        END;
    

    결과

        익명 블록이 완료되었습니다.
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.