음머어's 까망별

블로그 이미지
무지 인간의 첫 걸음..
by 까망별 음머어
  • 300,940Total hit
  • 0Today hit
  • 133Yesterday hit

'cursor'에 해당되는 글 1건

  1. 2009.11.18
    [Oracle] 동적 쿼리를 이용한 커서 선언방법 (2)


꺄악~
동적 쿼리를 이용한 커서 선언 방법~

[문제]
[대상이 될 테이블명과 읽어올 필드가 프로시져의 시작부분에서 정해지지 않는다면, 과연 커서를 선언할 수 있을까?]

[방법]
이걸 해결하는 방법이 REF CURSOR를 이용한 커서 참조형 만들기랄까.....

DECLARE

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

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

OPEN
   SELECT tabname, fldname
   INTO v_tabname, v_fldname   -- id 가 2871인 로우에서 테이블명과 대상 필드를 읽어온다
   FROM tw_test
   WHERE id = 2871;

  OPEN cur_test FOR 'SELECT '||v_fldname ||' FROM '||v_tabname;       
   --  읽어온 값들을 가지고 동적 쿼리를 완성한다.

  LOOP
    FETCH  cur_test INTO v_val;

        INSERT INTO tw_test2(val) VALUES(v_val);        -- 하고 싶은 일을 한다.
        COMMIT;

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

흐흐.. 햇갈리죵 -0-?
레퍼런스는 : http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96590/adg09dyn.htm

저작자 표시 비영리
신고
TRACKBACK 0 AND COMMENT 2

ARTICLE CATEGORY

모든 이야기 (77)
독백 (22)
MySQL (25)
Oracle (7)
영화 (6)
Linux (3)
DW(Data Warehouse) (0)
(7)
음악 (1)
Python (3)
Postgresql (2)

ARCHIVE