Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC64092 Status: Closed

THE ROUND SQL FUNCTION CAN RETURN THE WRONG RESULT ON A DECFLOAT INPUT
VALUES OF Infinity/-Infinity

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
The scenario can be re-created as follows: 
 
 
Table creation: create table dectest (col1 decfloat(34)); 
Insert special values like Infinity/-Infinity: insert into 
dectest values(Infinity),(-Infinity) 
 
The ROUND function may return Nan instead of Infinity/-Infinity. 
The output appears as follows: 
 
 
select col1,ROUND(col1,5) from dectest 
 
COL1        2 
 
------------------------------------------ 
------------------------------------------ 
     Infinity 
        NaN    (wrong result we expect Infinity) 
SQL0364W  DECFLOAT exception "INVALID OPERATION" has occurred 
during "BUILT-IN 
FUNCTION" operation.  SQLSTATE=0168D 
          -Infinity 
       NaN  (wrong result , expect: -Infinity) 
SQL0364W  DECFLOAT exception "INVALID OPERATION" has occurred 
during "BUILT-IN 
FUNCTION" operation.  SQLSTATE=0168D
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* ROUND SQL FUNCTION on DECFLOAT with INFINITY VALUE           * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* THE ROUND SQL FUNCTION CAN RETURN THE WRONG RESULT ON        * 
* ADECFLOATINPUT VALUES OF Infinity/-Infinity                  * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* install this fix                                             * 
****************************************************************
Local Fix:
Rewrite the SQL query  to have a case statement which avoids 
using the ROUND function on these 
special values.
available fix packs:
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
THE ROUND SQL FUNCTION CAN RETURN THE WRONG RESULT ON A DECFLOAT 
INPUT VALUES OF Infinity/-Infinity
Workaround
not known / see Local fix
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
22.10.2009
31.05.2010
31.05.2010
Problem solved at the following versions (IBM BugInfos)
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.2 FixList