'오라클'에 해당되는 글 47

  1. 2008.03.03 [Oracle] 오라클 동적쿼리 - 패키지바디 프로시저에서 생성

가끔 컬럼의 내용이 지정되지 않고 동적으로 여러개 생성되게 해야 할 경우가 있습니다.보통 오라클에서 이런 경우면 프로그램 단에서 쿼리를 작성해서 실행하는데...
패키지를 이용한 프로시저 쿼리를 사용할때 프로시저 내에서 동적으로 작성해주는 방법이 있습니다.

아래에 예를 적어봅니다...

그럼...


Procedure SYS_SELECT파라메터_1, 파라메터_2,

                                      out_cursor   OUT PG_STATISTICS.refcur)
IS
   CURSOR CUR IS
   Select SY_ID from Sy_Info; --CUR 커서에 조회내용 담기
   
   STR    VARCHAR2(4000);


BEGIN 
       STR := ' Select ';
              
       FOR REC IN CUR LOOP --CUR 커서에 담긴 내용에 따라 루프돌리며 실행
            
BEGIN
      
                STR := STR || ' 동적컬럼생성 as ' || REC.컬럼명 || ','; 

                                                    --CUR 커서의 컬럼은 REC.컬럼명 으로 사용 
       
               
exception when dup_val_on_index then     --예외처리              
                     null;
             END;
         
--commit; --Insert, Update, Delete 사용시
       END LOOP;
   
       STR := STR || ' from 테이블 ';
       STR := STR || ' where 조건 = :파라메터_1 ' ;  

       STR := STR || ' and 조건 = :파라메터_2 ' ;        
             
       OPEN OUT_CURSOR FOR STR; -- USING 파라메터_1, 파라메터_2 ; 

     --STR에 담긴 쿼리내용 실행, USING 으로 :로 지정된 파라메터와 대응되는 파라메터 추가


출처 :
http://blog.naver.com/crossbow71/60033090258  뽀우님의 블로그
출처 오라클 동적쿼리 - 패키지바디 프로시저에서 생성|작성자 견우