I am trying out UTF-8 on iSeries with V5R3. I made a physical file with
a 30 digit alpha-field with ccsid(1208) for UTF-8 data. When I wrote a
small ile-rpg programm for writing/reading data and display it to screen.
I tried out a 30 digit alpha field and a 15 digit graphic field with
ccsid(1200)/ccsid(13488) for my display-file. In my rpg program I
assigned the values to the field with
EVAL DISPLAYFIELD = DATABASEFIELD / EVAL DATABASEFIELD = DISPLAYFIELD
(for the alpha-field) and with
EVAL DISPLAYFIELD = %UCS2(DATABASEFIELD) / EVAL DATABASEFIELD =
%CHAR(DISPLAYFIELD) (for the graphic-field).
In both cases I got an error when I try to write letter like 'Ä', 'Ö',
'Ü', '§', '²' or '³' to the file. The error occurs on the 'write'-statement.
<error>
Data mapping error on member XXX
34 -- The data could not be converted from or to a UTF-8 or UTF-16 CCSID.
The expansion of single-byte data to a double-byte value caused the
converted length to be larger than the maximum length the result could hold
</error>
I think I have first to convert the data from the display-file-field to
UTF-8 and then assign it to the database-field. But how can I do this? I
found some api's who could do the job but isn't there a better solution?
I also couldn't define a field with CCSID(1208) in my display-file or
rpg-program.
Another problem ist that I got an SQL system error (SQL0901) when I try
to view the data in the file with a select. I got the following data
from logfile:
<log>
Function error X'0306' in machine instruction. Internal dump identifier
(ID) 0100265A.
*** DBOP open FAILED. Exception from call to SLICÜ ***.
Internal failure occurred in query processor.
File QAP0ZDMP in library QTEMP already exists.
User Trace data for job 022054/XXX/QPADEV0008 dumped to member
QP0Z022054 in file QAP0ZDMP in library QTEMP.
27 records copied from member QP0Z022054.
1 User Trace buffer(s) deleted.
SQL system error.
</log>
Could it be that UTF-8 is not very well supported at the moment on iSeries?
cu
Martin
Re the SQL error: UTF-8 should be supported. I tried a quick test on a
V5R3 system, creating a file using DDS with a single 30 character UTF-8
field. A simple SELECT worked ok for me. A quick search of PTF cover
letters here (www-912.ibm.com) did not show any obvious symptom matches.
You may want to contact your IBM service provider to investigate the
SQL error.
--
Karl Hanson