PLSQL 동적 쿼리 만들어 실행하기.
1. 오라클 에서 PLSQL문 사용시 DB세팅값기준으로 정렬을 다시 해서 PLSQL 문이 실행되어야 할때가 있다.
이럴때 이런식으로 해보자..
V_ORDERBY_CON :='';
FOR ORDERBY_LIST IN (SELECT PRRY_RNKG_CD
, PRRY_RNKG_NM
, PRRY_RNKG
, EXPL
FROM 테이블명
ORDER BY PRRY_RNKG)
LOOP
IF ORDERBY_LIST.PRRY_RNKG_CD = 'A'
THEN
V_ORDERBY_CON := V_ORDERBY_CON||', EX1.PPAY_DT ASC';
ELSIF ORDERBY_LIST.PRRY_RNKG_CD = 'B'
THEN
V_ORDERBY_CON := V_ORDERBY_CON||', EX1.LNKG_CD1 ASC';
END IF;
END LOOP;
V_ORDERBY_CON ->여기에 정렬순서에 대한 값을 넣어준다..
그리고. 실행전 완벽한 셀렉트문으로 만들어주고
V_QUERY :='SELECT *
FROM 테이블명
ORDER BY EX1.컬럼명 DESC,EX1.컬럼명 DESC
'||V_ORDERBY_CON||' --동적쿼리 위치해주고..
, EX1.컬럼명, EX1.컬럼명 DESC, EX1.컬럼명, EX1.컬럼명';
이렇게 만든 문장을 이걸로 실행
EXECUTE IMMEDIATE V_QUERY;
짠 끝. ㅋ.ㅋ