본문 바로가기

데이타베이스/Oracle

오라클 동적 쿼리를 이용한 CURSOR 사용

DECLARE

     v_tabname  NUMBER;                -- 대상 테이블
     v_fldname VARCHAR2(100);        -- 대상에서 읽을 필드명
     v_val1        VARCHAR2(100);        -- 읽은 값 저장할 변수
     v_val2       VARCHAR2(100);        -- 읽은 값 저장할 변수
     v_val3        VARCHAR2(100);        -- 읽은 값 저장할 변수

    TYPE type_cur is REF CURSOR;  -- 리퍼런스 커서 타입 선언
    cur_test    type_cur;                    -- 커서타입으로 커서 선언

   vCurSql   VARCHAR2(32767);

OPEN
   vCur_Sql := 'SELECT name, emp, money FROM ' || v_tabname;  

  OPEN cur_test FOR vCurSql;        

  LOOP
    FETCH  cur_test INTO v_val1, v_val2, v_val3;

        작업 코딩

    EXIT WHEN cur_test%NOTFOUND;
  END LOOP;
CLOSE cur_test;
END;