home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
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 IC94950 Status: Closed

FED: UPDATE NICKNAME FAILED WITH SQL1822N WITH "HY104 INVALID
PRECISION VALUE"

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
Remote column on MSSQL Server is nvarchar or nchar and the local 
column type used to update the corresponding nickname is 
vargraphic, when the local column length is over than 2000, 
update nickname failed with  SQL1822N with server error "HY104 
Invalid precision value". 
 
UPDATE NICK1 SET ( C1 ) = ( select C1 from LTAB) 
 
DB21034E  The command was processed as an SQL statement because 
it was not a valid Command Line Processor command.  During SQL 
processing it returned: 
SQL1822N  Unexpected error code "HY104" received from data 
source "MSSQL2008_SERV". Associated text and tokens are "Invalid 
precision value". SQLSTATE=560BD 
 
To reproduce the problem: 
 
set passthru mssql2008_serv; 
CREATE TABLE RTAB(C1 nvarchar(4000) COLLATE 
SQL_Latin1_General_CP1_CI_AS NULL); 
set passthru reset; 
 
CREATE NICKNAME NICK1 FOR <server_name>.<user_name>.RTAB; 
create LTAB (C1 vargraphic(2001)); 
insert into LTAB values ('the values is over 2000 characters '); 
 
UPDATE NICK1 SET ( C1 ) = ( select C1 from LTAB) 
DB21034E  The command was processed as an SQL statement because 
it was not a valid Command Line Processor command.  During SQL 
processing it returned: 
SQL1822N  Unexpected error code "HY104" received from data 
source "MSSQL2008_SERV". Associated text and tokens are "Invalid 
precision value". SQLSTATE=560BD 
 
The error happens because the local column precision is 
calculated as the physical buffer length. If the column is a 
double byte type with length 2001, the precision will be 4002 
which over the threshold of max permit value.
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* Update nickname failed with  SQL1822N with "HY104 Invalid    * 
* precision value"                                             * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See Error Description                                        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 v9.7 fix pace 9.                              * 
****************************************************************
Local Fix:
Define the local column with length no larger than 2000.
available fix packs:
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
This problem is fixed in DB2 v9.7 fix pace 9.
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC95524 IC95657 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
16.08.2013
16.12.2013
16.12.2013
Problem solved at the following versions (IBM BugInfos)
9.0.,
9.7.
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.9 FixList
9.7.0.9 FixList