Обсуждение: Collate problem when using ORDER BY

Поиск
Список
Период
Сортировка

Collate problem when using ORDER BY

От
David Harel
Дата:
Hi,

I'm new here. I work on a site that uses postgres version 8.1.5 and database encoding ISO_8859_8. When I sort select requests using order by the "weight" of the characters seem to be really funny (but consistent). It seems to me that if I create a "phantom" converted field such as:
SELECT field convert(field, "ISO_8859_8" ,"UTF8") as field_utf8 ORDER BY field_utf8;
Then the sort will be OK however, I get the error:
Query failed: ERROR: character 0xd7 of encoding "ISO_8859_8" has no equivalent in "UTF8".

Is it due to a "bad" character in the content?
Can I get rid of it like find/replace?
Can I change collate for a given table/database?
-- 
Regards.

David Harel,

==================================

Home office +972 77 7657645
Fax:        +972 77 7657645
Cellular:   +972 54 4534502
Snail Mail: Amuka           D.N Merom Hagalil           13802           Israel
Email:      hareldvd@ergolight-sw.com

Re: Collate problem when using ORDER BY

От
Zdenek Kotala
Дата:
David Harel napsal(a):
> Hi,
>
> I'm new here. I work on a site that uses postgres version 8.1.5 and
> database encoding ISO_8859_8. When I sort select requests using order by
> the "weight" of the characters seem to be really funny (but consistent).
> It seems to me that if I create a "phantom" converted field such as:
> SELECT field convert(field, "ISO_8859_8" ,"UTF8") as field_utf8 ORDER BY
> field_utf8;
> Then the sort will be OK however, I get the error:
> Query failed: ERROR: character 0xd7 of encoding "ISO_8859_8" has no
> equivalent in "UTF8".
>
> Is it due to a "bad" character in the content?
> Can I get rid of it like find/replace?
> Can I change collate for a given table/database?
>

You can use only one encoding per database. It means you convert data from UTF8
to ISO_8859_8, but you store it back into UTF8 encoded field. Probably strcoll
function is confused with illegal UTF8 character which has been created by your
conversion.

        Zdenek