특정 웹페이지가 뜨지 않는다는 SR요청에 따라서 확인했다.
문제는 쿼리부분
내가 만든 쿼리가 아니라서 다행이네
누군지는 몰라도 쿼리를 정말 대충 짠 것 같다.
-- 에러 내용 --
System.FormatException
입력 문자열의 형식이 잘못되었습니다.
Stack Trace:
위치: System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
위치: System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt)
위치: IBM.Data.DB2Types.DB2DecimalFloat.op_Explicit(DB2DecimalFloat source)
위치: IBM.Data.DB2Types.DB2DecimalFloat.get_Value()
위치: IBM.Data.DB2.DB2DataWrapper.GetValue()
위치: IBM.Data.DB2.DB2DataReader.GetValue(Int32 i)
위치: Quest.Toad.DB2.DB2ToadConnection.ReadRow(IDataReader reader, FastTable datatable, FastReadOptions options, PrePostProcessHandler prePostProcessHandler)
위치: Quest.Toad.Db.ToadDataAdapter.InternalReadBackground()
Error 입력 문자열의 형식이 잘못되었습니다.
364: [IBM][DB2/AIX64] SQL0364W DECFLOAT exception "INVALID OPERATION" has occurred during "DIVISION" operation. SQLSTATE=0168D
--- 에러 내용 끝 ---
에러의 이유는 간단했다.
산술식이 잘못되었다. NULL값이 분모에 있었다...
예외처리를 해줘야한다.
SELECT
CASE
WHEN
SUM( NVL( COLUMN_1, 0 ) ) = 0
THEN
0
ELSE
SUM( NVL( COLUMN_2, 0) )
/ SUM( NVL( COLUMN_1, 0) )
END
FROM TABLE_1
CASE문을 이용해서 분모가 '0'이나 'NULL'이면 예외처리를 해주는게 좋다.
해당 내용의 출처를 밝힙니다.
출처 : IBM Knowledge Center
'IT 자료' 카테고리의 다른 글
유비리포트 Ubireport 메뉴얼 (0) | 2014.11.25 |
---|---|
c:if (0) | 2014.11.25 |
JavaScript random() (0) | 2014.11.24 |
DB2 ROWNUM (0) | 2014.11.23 |
DB2 SQL0696N 에러 (0) | 2014.11.22 |