나의질문답

mysql FORMAT함수

예쁜꽃이피었으면 2014. 7. 29. 23:42

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Incorrect parameter count in the call to native function 'FORMAT'

 

에러가 처음발생한 시점의 로그 내용을 보면

com.ibatis.common.jdbc.exception.NestedSQLException:   ===> 해당 라이브러리 관련 표준 문법에 어긋나는 익셉션이 생겼다는 걸 알려주는 내용이고,
--- The error occurred in sb/common/db/sqlmaps/order.xml.  ===> 오더쩜엑스엠엘 파일에서 에러가 생겼다는걸 알려주는 내용
--- The error occurred while applying a parameter map.  ===> 파라미터를 담아서 주고받는 맵 객체 관련 내용이라는 것
--- Check the getBookListByOrderPkNum2-InlineParameterMap.  ===> getBookListByOrderPkNum2 쿼리에서 오류가 났으니 내부 파라미터 맵을 확인해보라는 내용
--- Check the statement (query failed). ===> 마지막으로 체크하라~ 어딜? 쿼리 문법을 다시 체크하라 는 내용!

 

 

 

SELECT A.TITLE, C.CANCEL_DATE,
                FORMAT(SUM(C.PRICE)) SUM_PRICE,
                FORMAT(SUM(C.A__PRICE))  SUM_DELIVER_PRICE,
                FORMAT(C.PRICE+C.A_PRICE, 0) PRICE
           FROM BOOK A, SELL_REQ B, ORDER_DETAIL C
          WHERE A.BOOK_PK_NUM = B.BOOK_PK_NUM
            AND B.SELL_PK_NUM = C.SELL_PK_NUM
            AND C.ORDER_PK_NUM = #order_pk_num#
            AND B.DEL_YN = 'N'
            AND C.DEL_YN = 'N'

앗~  FORMAT  이라는 단어가 보임

 

sally_and_friends-18FORMAT함수가 뭐길래 문법 오류가 나..?

 

 FORMAT(숫자,소수이하자리수) : 숫자를 #,###,###.## 형식으로 출력
   --임의의 소수점자릿수를 생성한다./소숫점을 필요한 만큼 취한다.
   --소숫점을 만들어 같은 길이로 한다음 동일하게 프로그램에서 불러와서 소숫점을 버리고
      필요한 곳에 출력하는 등에 응용할 수 있다.
   select format(123,5);
   select format(123.12345600123,9);
   select format(123.123,-3);
   ※ 소숫점이하자리수가 0 이나 음수값은 해당이 안됨

 

http://habony.tistory.com/282#.U5CROPl_vf0

http://piccom.egloos.com/2866254 여기보고 고침. 해결!

SELECT A.TITLE, C.CANCEL_DATE,
               
FORMAT(SUM(C.PRICE),0) SUM_PRICE,
               
FORMAT(SUM(C.A__PRICE),0)  SUM_DELIVER_PRICE,
               
FORMAT(C.PRICE+C.A_PRICE, 0) PRICE
           FROM BOOK A, SELL_REQ B, ORDER_DETAIL C
          WHERE A.BOOK_PK_NUM = B.BOOK_PK_NUM
            AND B.SELL_PK_NUM = C.SELL_PK_NUM
            AND C.ORDER_PK_NUM = #order_pk_num#
            AND B.DEL_YN = 'N'
            AND C.DEL_YN = 'N'

반응형