$NLS_SORT_ORDER

Specify the default sequencing rules used when sorting strings, or reading string data from the database with the order by clause.

$NLS_SORT_ORDER {=} NLSLOCALE | CLASSIC | BINARY

Arguments

Parameter Description
NLSLOCALE Applies locale-based sorting for strings, if $nlslocale is not set to classic.
CLASSIC No locale-based sorting rules are applied.
BINARY Binary ordering

Note:  The values JPNJIS and KORKSC are deprecated. Instead, use NLSLOCALE.

Defaults

Assignment file: Any application assignment file
Section: [SETTINGS]
Default value: NLSLOCALE

Description

Use the $NLS_SORT_ORDER assignment setting to control the default sequencing rules applied to string data by:

  • ProcScript sort commands (sort, sort/list, $sort, and $sortlist)
  • The order by clause of the read statement. This is used to sort data in the hitlist (in other words, when the hitlist is sorted by Uniface, not the database).

If $NLS_SORT_ORDER is not set, the value of $NLS_LOCALE is used to determine the default sort order for strings. If it is set to a locale or to system, locale-based sorting rules are applied for string data (as well as locale-based formatting of numeric and date and time-related data). This can affect the way in which symbols, numbers, and diacritical characters are sorted, and the sort order in non-Western character sets. If $NLS_LOCALE is set to classic, or is omitted, binary sorting is used for strings.

Thus, if you set $NLS_SORT_ORDER, you should also specify $NLS_LOCALE.

Setting $NLS_SORT_ORDER sets the value of $nlssortorder. This value can be checked or changed in ProcScript using the $nlssortorder ProcScript function.

$NLS_SORT_ORDER

In the following example, the $NLS_LOCALE specifies Canadian French. Normally, this would result in data being sorted by French Canadian rules. However, because $NLS_SORT_ORDER is set to classic, this behavior is turned off for sort ProcScript instructions.

[SETTINGS]
$NLS_LOCALE = fr_CA

$NLS_SORT_ORDER = classic

Related Topics