Michael P. wrote:

> 
> Dear group,
> 
> how can I solve the following MAPCHAR problem?
> 
> CREATE TABLE prods
> (
>     id Integer NOT NULL  DEFAULT SERIAL (1),
>     prod_code Char (10) ASCII,
>     PRIMARY KEY ("ID")
> )
> 
> INSERT INTO prods SET id = 1, prod_code = '�12345678'
> INSERT INTO prods SET id = 2, prod_code = '�123456789'
> 
> SELECT id, prod_code, MAPCHAR(prod_code) as sort FROM prods
> => ERROR "General error;-2010 POS(1) Assignment impossible, char value
> too long"
> 
> 
> SELECT id, prod_code, MAPCHAR(prod_code) as sort FROM prods WHERE id = 1
> => IS OK
> 
> SELECT id, prod_code, MAPCHAR(prod_code) as sort FROM prods WHERE id = 2
> => ERROR "General error;-2010 POS(1) Assignment impossible, char value
> too long"
> 
> I guess the reason of the error is: In the latter case MAPCHAR changes
> '�123456789' (10 chars) into 'oe123456789' (11 chars), thus the result
> exceeds the size of the field 'prod_code'. And MAPCHAR unfortunately
> does not allow itself a field of longer size.
> 
> I hoped that SUBSTR may solve the problem but it doesn't. I replaced
> 'MAPCHAR(prod_code)' by SUBSTR(MAPCHAR(prod_code), 1, 5) and by
> MAPCHAR(SUBSTR(prod_code, 1, 5)) but in both cases the error remained
> the same.
> 
> The only solution I can think of so far is to count the number of
> umlaute (chars like � and �) in the string I'd like to put into the db
> and reduce its size not only to the field size but to 'field size' -
> 'number of umlaute' (so that MAPCHAR has enough space left) before I
> insert or update it.
> 
> Does anybody know a more sophisticated solution?

Yes, me, use a kernel-version >= 7.5.00.24, .26 for example, which is newest 
one on download-site.

Elke
SAP Labs Berlin

> 
> Best wishes
>     Michael


--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to