Consultor Eletrônico



Kbase P162564: Accented characters are sorted to the bottom of the result list when using DataServer for Oracle
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   3/26/2010
Status: Unverified

SYMPTOM(s):

Accented characters are sorted to the bottom of the result list when using DataServer for Oracle

Accent insensitive sorting in browsers is incorrect with Oracle DataServer

Accented characters are sorted to the end of the result list, e.g.

A => B => C => Z => Ä

Desired result is for accented characters to be sorted into the result list, e.g.

A => Ä => B => C => Z

FACT(s) (Environment):

Oracle database uses a Unicode code page
NLS_LANG is set to .AL32UTF8 on the client
NLS_SORT is not explicitly set
Schema holder database uses the UTF8 code page
Schema holder has ICU-UCA collation defined
Sorting is correct when using similar settings with a Progress database (UTF8 + ICU-UCA)
Setting the -icucistr parameter to any value has no effect on sorting
OpenEdge 10.1C
OpenEdge 10.2x
All Supported Operating Systems
Oracle

CAUSE:

The collation settings of the foreign database (Oracle) override those defined in the OpenEdge schema holder. NLS_SORT setting of the Oracle Client is set to BINARY. Accented characters have higher values in code page character maps and so are sorted to the end of the result list.

FIX:

Set the NLS_SORT parameter for the Oracle Client to an appropriate value for code page / language being used.

Oracle 9.x example:
Setting NLS_SORT = GENERIC_BASELETTER produced the expected sort order (A => Ä => B => C => Z).

Oracle 10.x example:
Setting NLS_SORT = BINARY_AI (accent insensitive binary sort) produced the expected sort order (A => Ä => B => C => Z). The BINARY_AI setting is not available in Oracle 9.x.