본문 바로가기
프로그래밍 언어/쿼리문 + Oracle + MySQL

[오라클] 동적쿼리를 실행해서 원하는 값을 가져오는 Oracle 함수 예제

by 우림 2017. 6. 23.

보통 쿼리에 컬럼이나 테이블명 등은 변수로 받을 수가 없는데요.

원하는대로 쿼리를 만들어서 결과값을 가져오는 오라클 함수 샘플입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
CREATE OR REPLACE FUNCTION ZBF_GET_DELIVERY_NM (
      p_ptnrky in varchar2
    , p_wareky in varchar2
) RETURN VARCHAR IS
 
     v_sql VARCHAR2(1000);
     v_returnValue VARCHAR2(180);
/******************************************************************************/
BEGIN
 
    BEGIN
 
        v_sql := ' SELECT B.name01 '||
                 '   FROM ystdv Y, bzptn B '||
                 '  WHERE Y.'|| p_wareky ||' = B.ptnrky '||
                 '    AND Y.ptnrky = '''|| p_ptnrky ||''''
                 ;
                
        EXECUTE IMMEDIATE v_sql INTO v_returnValue;
 
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        v_returnValue := ' ';
      WHEN OTHERS THEN
        v_returnValue := ' ';
    END;
    
    RETURN v_returnValue;
    
END;
cs



v_sql이라는 변수에 담아서  쿼리 실행 결과를 v_returnValue라는 변수로 받아 return합니다.

댓글