Problem with DBD::DB2 and UTF8.

Problem with DBD::DB2 and UTF8.

am 14.04.2006 17:31:56 von Hemant Shah

Folks,

Here is my setup:

DB2 V8.2 ESE running on Linux with utf-8 code set.
Database territory = us
Database code page = 1208
Database code set = utf-8
Database country/region code = 1

The tables in this database contain English, Spanish and Japanese text.


I have DB2 V8.2 ESE setup on AIX (5.1, 5.2, 5.3), the database on
AIX is setup as remote database:

System Database Directory

Number of entries in the directory = 1

Database 1 entry:

Database alias = GBLCODE
Database name = GBLCODE
Node name = GBLNODE
Database release level = a.00
Comment =
Directory entry type = Remote
Authentication = CLIENT
Catalog database partition number = -1


I have perl scripts using DBD:DB2 V 0.78 and DBI V1.45. The scripts were
running fine under AIX 5.1 and 5.2. Recently I upgraded one of the systems
from AIX 5.1 to AIX 5.3. Now my scripts do not work on AIX 5.3. When it
fetches/inserts any column that contains UTF-8 characters it
messes up the characters, and in many (not all) cases it thinks that the
data is bigger than the column during insert.

If I run the same script from AIX 5.2 system with everything else the same,
it works fine.

I ran command to update the instance and re-built DBI and DBD, but it did
not fix the error. I checked locale filesets between AIX 5.2 and AIX 5.3
and I cannot find anything missing.


I wrote a simple perl script that reads Japanese (utf-8) text from a file
and writes it out to another file, this seems to work so I think the problem
is in DB2/DBD interface.

I need to fix this problem because I need to upgrade the other system from
AIX 5.2 to AIX 5.3.


Thanks.



--
Hemant Shah /"\ ASCII ribbon campaign
E-mail: NoJunkMailshah@xnet.com \ / ---------------------
X against HTML mail
TO REPLY, REMOVE NoJunkMail / \ and postings
FROM MY E-MAIL ADDRESS.
-----------------[DO NOT SEND UNSOLICITED BULK E-MAIL]------------------
I haven't lost my mind, Above opinions are mine only.
it's backed up on tape somewhere. Others can have their own.