DB2 - Problem description
| Problem IC87901 | Status: Closed |
SQUARE BRACKETS([ ]) AND CARET(^) CHARACTERS ARE REPLACED BY SUB STITUTE CHARACTERS ON CODEPAGE CONVERSION FROM CP937 TO CP950. | |
| product: | |
DB2 FOR LUW / DB2FORLUW / A10 - DB2 | |
| Problem description: | |
Square brackets([ ]) and caret(^) characters from source
codepage 937 to target codepage 950 replaced by substitute
characters on codepage covnersion. DB2 users can use alternate
table 09370950.cnv provided as the APAR fix to map these
characters([,],^) to appropriate codepoints. The alternate
conversion table "09370950.cnv" is located under sqllib/conv/alt
directory. To get the updated mapping, copy the alternate table
from sqllib/conv/alt directory to sqllib/conv directory and
rerun your application or database/instance in some
circumstances, eg. accessing nickname via federated server.
The default mapping without the alternate conversion table:
937 950
char code code char
---- ---- ---- ----
? 4A 5B [
? 5F 5E ^
| 6A 5D ]
^ B0 7F SUB
[ BA 7F SUB
] BB 7F SUB
New mapping after applying alternate table:
937 950
char code code char
---- ---- ---- ----
? 4A 7F SUB
? 5F 7F SUB
| 6A 7F SUB
^ B0 5E ^
[ BA 5B [
] BB 5D ]
Codpage 937 is host codepage for Taiwan and territory identifier
is TW. Issue is applicable if database is on host system (eg
iSeries). | |
| Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to v10.1.2 or higher fixpack. * **************************************************************** | |
| Local Fix: | |
To make the conversion same as new mapping without the alternate conversion table, codepage 1208(Unicode) shall be involved as an intermediate. For example, if nickname via federated server is used for accessing database with CP937 on iSeries, and the local database is using CP950 on LUW platform, then conversion from CP937 to CP950 will happen. To bypass conversion 937->950, it is better to create a UTF8 database and create nickname in it. Then, the conversion will become 937->1208->950. The steps are similar to following steps. 1. create database new using codeset UTF8 territory TW 2. create wrapper, server, nickname in the UTF8 database for accessing db with CP937 on AS400. 3. db2set DB2CODEPAGE=950 4. db2 terminate Then, the conversion will be 937->1208->950 every time accessing data in db with CP937 using db2 CLP. | |
| available fix packs: | |
DB2 Version 10.1 Fix Pack 2 for Linux, UNIX, and Windows | |
| Solution | |
Upgrade to v10.1.2 or higher fixpack. | |
| Workaround | |
not known / see Local fix | |
| Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 04.11.2012 02.01.2013 02.01.2013 |
| Problem solved at the following versions (IBM BugInfos) | |
| Problem solved according to the fixlist(s) of the following version(s) | |
| 10.1.0.2 |
|
| 10.5.0.2 |
|