Oracle Forms - 문법 - SET_BLOCK_PROPERTY
APP_QUERY.APPEND('XXACO_RM_ACCOUNTING_SUMMARY_V', 'PERIOD_NAME BETWEEN :CTL_QUERY.PERIOD_NAME_F and :CTL_QUERY.PERIOD_NAME_T ORDER BY PERIOD_NAME DESC ');
빨간색 부분인 ORDER BY PERIOD_NAME DESC 가 문제였는데
다른 조건 없이 날짜 단위로 검색을 할 경우 문제가 없었지만
다른 조건들 SOURCE TYPE , INV TYPE 등이 들어갈 경우
쿼리 문에 문제가 생겨 데이터를 도출 할 수 없었다.
처음 시도한 해결 법은 APP_QUERY.APPEND를 맨 밑으로 보내고 돌리는 것이었지만 ora-00907: missing right parenthesis 발생하여 order by 문을 넣을 수 없었다.
해결법은
SET_BLOCK_PROPERTY 를 활용하는 것이었는데
참고: 오라클 forms DeveloperServer Realse 6i
SET_BLOCK_PROPERTY('Block Name',ORDER_BY,'String'); -- Order by 문
3번째 넣는 곳에 STRING을 넣어야 해서
PROCEDURE PRE_QUERY에 V_ORDER_BY를 VARCHAR2 타입으로 선언한다.
V_ORDER_BY 에 PERIOD_NAME DESC를 할당해서
최종적으로 SET_BLOCK_PROPERTY를 적용해 주면
검색 시 이런 쿼리 결과가 나온다.