본문 바로가기

Oracle - Forms/Forms 문법 관련

Oracle Forms - 문법 - SET_BLOCK_PROPERTY

728x90

 

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를 적용해 주면

검색 시 이런 쿼리 결과가 나온다.

 

반응형