ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/QLGRTVLC.htm

4022 lines
138 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Retrieve Locale Information (QLGRTVLC, QlgRetrieveLocaleInformation)
API</title>
<!-- Begin Header Records ========================================== -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- NETMG2 SCRIPT A converted by B2H R4.1 (346) (CMS) by HOLTJM at -->
<!-- RCHVMW2 on 29 Jan 1999 at 10:01:37 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!--File edited December 2001 -->
<!-- Updates from System API Programming book phase-out, February 2003 by JET -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Retrieve Locale Information (QLGRTVLC, QlgRetrieveLocaleInformation)
API</h2>
<div class="box" style="width: 65%;">
<br>
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Receiver variable</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Length of receiver variable</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Format</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Locale path name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Locale category key to return</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">Error code</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Service Program: QLGLOCAL<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Retrieve Locale Information (OPM, QLGRTVLC; ILE,
QlgRetrieveLocaleInformation) API retrieves information from one category of a
locale or retrieves all categories of a locale. For further information on
locales, see the <a href="../nls/rbagsglobalmain.htm">Globalization</a> topic
in the iSeries Information Center.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Shipped API Authority</em></dt>
<dd>*USE<br>
<br>
</dd>
<dt><em>Locale Object Authority</em></dt>
<dd>*USE<br>
<br>
</dd>
<dt><em>Locale Library Authority</em></dt>
<dd>*USE<br>
<br>
</dd>
<dt><em>Locale Object Lock</em></dt>
<dd>*SHRNUP</dd>
</dl>
<br>
<h3>Required Parameters</h3>
<dl>
<dt><strong>Receiver variable</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The variable that is to receive the information requested. If requesting the
LC_CTYPE or the LC_COLLATE categories, the information returned could
potentially be very large if the locale data type indicator (returned within
the receiver variable) indicates that the locale data is mixed-byte,
double-byte (includes ISO 10646 16-bit character encoding standard (UCS2)), UTF8 or UTF32.</p>
<p>In this case, a user space with the auto-extendable attribute set may provide a
better means for the receiver variable. For further information on using a user
space for a receiver variable, see
<a href="../apiref/conReceiver.htm">Receiver variables</a> in API concepts.</p>
</dd>
<dt><strong>Length of receiver variable</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the receiver variable. If the length is larger than the size
of the receiver variable, the results may not be predictable. The minimum
length is 8 bytes.</p>
</dd>
<dt><strong>Format</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the locale information to be returned. The following format
name must be used:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>LOCI0100</em></td>
<td align="left" valign="top">Locale information</td>
</tr>
</table>
<p>Refer to <a href="#HDRLOCFMT">Format of the Locale Information</a> for more
information on the locale format.</p>
</dd>
<dt><strong>Locale path name</strong></dt>
<dd>INPUT; CHAR(*)
<p>The structure that contains the path name information of the locale used to
retrieve the information. For more information on this structure, see <a href=
"../apiref/pns.htm">Path name format</a>.</p>
<p>The following special values are allowed for the path name field in the path
name structure:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*C</em></td>
<td align="left" valign="top">Use the C locale. This special value must be
specified in the first 2 characters of the path name field of the path name
structure. The C locale is equivalent to the POSIX locale.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ENV</em></td>
<td align="left" valign="top">Use the locale defined in the environment of the
job. This special value must be specified in the first 4 characters of the path
name field of the path name structure.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*POSIX</em></td>
<td align="left" valign="top">Use the POSIX locale, which is designed to meet
the X/Open POSIX locale specification. This special value must be specified in
the first 6 characters of the path name field of the path name structure. The
POSIX locale is equivalent to the C locale.</td>
</tr>
</table>
<p>When *ENV is specified for the locale path name, the API will retrieve the
locale information from the environment variable. The API will assume the '/'
character as the path name delimiter. If the CCSID for the path name in the
environment variable is 65535, the API will assume the job default CCSID.</p>
<p>If *ENV is specified and the requested category is not LC_ALL, the API will
use the locale defined in the environment variable as defined by the first
condition met below:</p>
<ul>
<li>Check the LC_ALL environment variable. If defined and not null, use the
locale specified. Otherwise, go to the next step.<br>
<br>
</li>
<li>Check the specific category environment variable (for example LC_CTYPE,
LC_MONETARY, and so on). If defined and not null, use the locale specified.
Otherwise, go to the next step.<br>
<br>
</li>
<li>Check the LANG environment variable. If defined and not null, use the
locale specified. Otherwise, the API returns an error.</li>
</ul>
<p>If *ENV is specified and the requested category is LC_ALL, the API uses the
locale defined in the environment variable as defined by the first condition
met below:</p>
<ul>
<li>Check the LC_ALL environment variable. If defined and not null, use the
locale specified for all locale categories. Otherwise, go to the next step.<br>
<br>
</li>
<li>Check the specific category environment variable (for example, LC_CTYPE,
LC_MONETARY, and so on) for each category. If defined and not null, use the
locale specified for the corresponding locale category. This could result in
the locale information for each category being retrieved from a different
locale object. Otherwise, go to the next step.<br>
<br>
</li>
<li>Check the LANG environment variable. If defined and not null, use the
locale specified. Otherwise, the API returns an error.</li>
</ul>
<p>If none of the locale environment variables are defined for the requested
category or if the locale defined is found to be not valid or does not exist,
an error is returned.</p>
</dd>
<dt><strong>Locale category key to return</strong></dt>
<dd>INPUT; BINARY(4)
<p>The key of the locale category to retrieve information on. Refer to <a href=
"#HDRLOCKEYS">Locale Category Keys</a> for more information.</p>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<p>The structure in which to return error information. For the format of the
structure, see <a href="../apiref/error.htm#hdrerrcod">Error code parameter</a>.</p>
</dd>
</dl>
<br>
<h3><a name="HDRLOCKEYS">Locale Category Keys</a></h3>
<p>The following table lists the valid locale category keys for the Locale
category key to return parameter. For a detailed description of each field, see
<a href="#HDRKEYDCS">Locale Category Key Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="top">Key</th>
<th align="left" valign="top">Field</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">-1</td>
<td align="left" valign="top" width="90%">LC_ALL - All categories</td>
</tr>
<tr>
<td align="center" valign="top">1</td>
<td align="left" valign="top">LC_CTYPE - Character classification and
conversion</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">LC_COLLATE - Character collation</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">LC_TIME - Date and time formatting</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">LC_NUMERIC - Numeric and non-monetary
formatting</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">LC_MESSAGES - Affirmative and negative
responses</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">LC_MONETARY - Monetary related numeric
formatting</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">LC_TOD - Time zone information</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRKEYDCS">Locale Category Key Descriptions</a></h3>
<p><strong>LC_ALL - All categories.</strong> Return all categories in the
locale.</p>
<p><strong>LC_COLLATE - Character collation.</strong> Provides a collation
sequence definition for characters and character strings. A collation sequence
defines the relative order between the collating elements in the locale.</p>
<p><strong>LC_CTYPE - Character classification and conversion.</strong> Defines
character classification, conversion and other character attributes such as
printable and punctuation characters.</p>
<p><strong>LC_MESSAGES - Affirmative and negative responses.</strong> Defines
the format and values for affirmative and negative responses.</p>
<p><strong>LC_MONETARY - Monetary related numeric formatting.</strong> Defines
the rules and symbols that are used to format monetary numeric information.</p>
<p><strong>LC_NUMERIC - Numeric and non-monetary formatting.</strong> Defines
the rules and symbols that are used to format non-monetary numeric
information.</p>
<p><strong>LC_TIME - Date and time formatting.</strong> Defines the
interpretation for date and time formatting. This category supports the
Gregorian (7-day weeks, 12-month years, leap years, and so forth) style
calendar only.</p>
<p><strong>LC_TOD - Time zone information.</strong> Defines the time zone
information (name of the time zone, daylight savings time start and end, and so
forth).</p>
<br>
<h3><a name="HDRLOCFMT">Format of the Locale Information</a></h3>
<h4>LOCI0100 Format</h4>
<p>The following information is returned in the receiver variable. For a
detailed description of each field, see <a href="../apiref/pns.htm">Path name format</a>.
For a detailed description of each locale category, refer to the locale
category formats.</p>
<p>Upon return from the call to the API, it is highly recommended that the
bytes returned and bytes available fields be examined first. If the bytes
available field is greater than the bytes returned field, the API had more
information to return than what could fit in the receiver variable provided on
the call. When this occurs, calling the API again with a receiver variable at
least the size of the value in the bytes available field is highly recommended.
This is due to the wide use of offsets by this API. If not enough room was
available, an offset may contain a value of where the information would have
started if the receiver variable were large enough. Attempting to access the
information at this offset may cause unpredictable results.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Bytes returned</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Bytes available</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale category key</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to category information. Refer to <a href=
"#HDRLCLCAT">Locale Category Formats</a> for further details.</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of category information</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRLCLCAT">Locale Category Formats</a></h3>
<p>A format is defined for each locale category. An offset and length field are
provided for all fields that are variable in length. The variable length fields
may contain character data, binary data or a combination of character and
binary data. The type of data that the field contains is described in the field
descriptions. <!-- Refer to for more information. --></p>
<p>The locale data type is used to determine if the locale data returned
contains single-byte data, mixed-byte data (single-byte and double-byte mixed),
pure double-byte data, UTF8 data or UTF32 data. If the data returned is EBCDIC mixed-byte data, the
double-byte data is encased within a shift out (X'0E') and shift in (X'0F'),
except when the single-byte and double-byte data is returned separately (for
example, LC_CTYPE).</p>
<p>If there is no data available for the field and the field type is an offset
to the information, the offset is set to a value of zero.</p>
<br>
<h3>LC_CTYPE - Character Classification and Conversion Format</h3>
<p>The format for which this information is returned is determined by the
locale data type. For example, if the locale data type is 1, the information
returned for this category would be in the Single-Byte Character Classification
Structure. Refer to for information on the possible data types for the locale
data type field. For a detailed description of each field, see <a href=
"../apiref/pns.htm">Path name format</a>.</p>
<p>The explanations for the various arrays that are returned by the LC_CTYPE
category all assume base zero.</p>
<br>
<h4>Single-Byte Character Classification and Conversion Structure</h4>
<p>The following information is returned for the single-byte character
classification and conversion locale category.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(256)</td>
<td align="left" valign="top">Single-byte uppercase conversion mapping. Refer
to the <a href="#HDRSCASE">Single-Byte Conversion Mapping Structures</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(256)</td>
<td align="left" valign="top">Single-byte lowercase conversion mapping. Refer
to the <a href="#HDRSCASE">Single-Byte Conversion Mapping Structures</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">ARRAY(256) of UNSIGNED BINARY(2)</td>
<td align="left" valign="top">Single-byte character classification. Refer to
the <a href="#HDRSBCS">Single-Byte Character Classification Structure</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4>Double-Byte Character Classification Structure</h4>
<p>The following information is returned for the double-byte character
classification and conversion locale category.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte uppercase conversion
mapping. Refer to the <a href="#HDRDCASE">Double-Byte Conversion Mapping
Structures</a> for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte lowercase conversion
mapping. Refer to the <a href="#HDRDCASE">Double-Byte Conversion Mapping
Structures</a> for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte character classification.
Refer to the <a href="#HDRDBCSX">Double-Byte Character Classification
Structure</a> for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4>Mixed-Byte Character Classification and Conversion Structure</h4>
<p>The following information is returned for the mixed-byte character
classification and conversion category. The shift out and shift in control
characters are not returned with this data.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(256)</td>
<td align="left" valign="top">Single-byte uppercase conversion mapping. Refer
to the <a href="#HDRSCASE">Single-Byte Conversion Mapping Structures</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(256)</td>
<td align="left" valign="top">Single-byte lowercase conversion mapping. Refer
to the <a href="#HDRSCASE">Single-Byte Conversion Mapping Structures</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">ARRAY(256) of UNSIGNED BINARY(2)</td>
<td align="left" valign="top">Single-byte character classification. Refer to
the <a href="#HDRSBCS">Single-Byte Character Classification Structure</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte uppercase conversion
mapping. Refer to the <a href="#HDRDCASE">Double-Byte Conversion Mapping
Structures</a> for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte lowercase conversion
mapping. Refer to the <a href="#HDRDCASE">Double-Byte Conversion Mapping
Structures</a> for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte character classification.
Refer to the <a href="#HDRDBCSX">Double-Byte Character Classification
Structure</a> for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4>Four-Byte Character Classification Structure</h4>
<p>The following information is returned for the four-byte character
classification and conversion locale category.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to four-byte uppercase conversion
mapping. Refer to the <a href="#HDR4CASE">Four-Byte Conversion Mapping
Structures</a> for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to four-byte lowercase conversion
mapping. Refer to the <a href="#HDR4CASE">Four-Byte Conversion Mapping
Structures</a> for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to four-byte character classification.
Refer to the <a href="#HDR4BCSX">Four-Byte Character Classification
Structure</a> for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRSCASE">Single-Byte Conversion Mapping Structures</a></h4>
<p>The conversion information for the single-byte characters is stored within
an Array(256) of Char(1).</p>
<p>As illustrated in the example below, the conversion is performed by using
the code point for the character that is to be converted as the subscript into
the conversion mapping array. For example, if you have an uppercase character
that has a code point (hexadecimal value) of 'C1', using the decimal value of
this code point which is 193, you would go to the 193rd subscript of the
lowercase conversion array and the value that is stored in that subscript is
the code point for the lower case character. In this example, the lower case
code point for uppercase character C1 is 81.</p>
<p>Conversion from lower to upper would be performed the same way except the
code point for the lower case character would be used as the subscript into the
uppercase conversion array.</p>
<p align="center"><img src="RBAFX550.gif" alt=
"Single-Byte Conversion Mapping Structures"></p>
<br>
<h4><a name="HDRDCASE">Double-Byte Conversion Mapping Structures</a></h4>
<p>The conversion information for the double-byte characters is stored within
an Array(256) of Binary(4) in which the Binary(4) elements of this array
contain offsets to a second Array(256) of Character(2). The Character(2)
elements of the second array contain the upper or lowercase character
conversion mappings.</p>
<p>The double-byte code point for the character is used as the subscripts to
access the arrays. The left-most byte of the double-byte character is used to
access the first Array(256) of Binary(4). Within the subscripts of the first
array are offsets to the second Array(256) of Character(2). The right-most byte
of the double-byte character is used as the subscript to access this second
array. Within this subscript is the double-byte upper or lowercase conversion
character.</p>
<p>If the offset in the Binary(4) element of the first array is zero, than
there is no case conversion available for that range of characters. For
example, if you have an uppercase double-byte code point '40CE' and the offset
in the first array for the lowercase conversion mapping was set to zero, this
would indicate that all uppercase double-byte characters for this locale in the
range where the left-most byte is '40' have no lowercase conversion
available.</p>
<p>As illustrated in the example below, if you had a double-byte uppercase
character 'D2AE', the decimal value of 'D2' is used as the subscript for the
first array of the lowercase conversion mapping. The offset of 636 at this
subscript is used to gain access to the second array and the decimal value of
'AE' is used as the subscript for the second array to access the double-byte
lowercase character. In this example, the lowercase character for uppercase
character 'D2AE' is 'B3CD'.</p>
<p>Conversion from lower to upper would be performed the same way except the
code point for the lowercase character would be used as the subscripts into the
uppercase conversion arrays.</p>
<p align="center"><img src="RBAFX551.gif" alt=
"Double-Byte Character Classification Structure"></p>
<br>
<br>
<h4><a name="HDR4CASE">Four-Byte Conversion Mapping Structures</a></h4>
<p>The conversion information for the four-byte characters is stored within
an Array(256) of Binary(4). The Binary(4) elements of this array
contain offsets to a second Array(256) of Binary(4).
The Binary(4) elements of this
second array contain offsets to a third Array(256) of Binary(4).
The Binary(4) elements of this third array contain offsets to a fourth
Array(256) of Binary(4). The Binary(4) elements of the fourth array
contain the upper or lowercase character conversion mappings.</p>
<p>The four-byte code point for the character is used as the subscripts to
access the arrays. The left-most byte of the four-byte character is used to
access the first Array(256) of Binary(4). Within the subscripts of the first
array are offsets to the second Array(256) of Binary(4). The second left-most
byte of the four-byte character is used as the subscript to access this second
array. Within the subscripts of the second array are offsets to the third
Array(256) of Binary(4). The third left-most byte of the four-byte character
is used as the subscript to access this third array. Within the subscripts
of the third array are offsets to the fourth Array(256) of Binary(4).
The right-most byte of the four-byte character is used as the subscript to
access this fourth array. The Binary(4) elements of the fourth array
contain the upper or lowercase character conversion mappings.</p>
<p>If the offset in the Binary(4) element of the first array is zero, then
there is no case conversion available for that range of characters. For
example, if you have an uppercase four-byte code point '000040CE' and the offset
in the first array for the lowercase conversion mapping was set to zero, this
would indicate that all uppercase four-byte characters for this locale in the
range where the left-most byte is '00' have no lowercase conversion
available. The same is also true when the offset in the second or third array
is zero.</p>
<p>As illustrated in the example below, if you had a four-byte uppercase
character '0000FF21',
the value of '00' is used as the subscript for the
first array of the lowercase conversion mapping. The offset of 636 at this
subscript is used to gain access to the second array.
The value of
'00' is used as the subscript for the second array to access the third array.
The offset of A36 at this
subscript is used to gain access to the third array and the value of
'FF' is used as the subscript for the third array to access the fourth array.
The offset of 1236 at this
subscript is used to gain access to the fourth array and the value of
'21' is used as the subscript for the fourth array to access the four-byte
lowercase character. In this example, the lowercase character for uppercase
character '0000FF21' is '0000FF41'.</p>
<p>Conversion from lower to upper would be performed the same way except the
code point for the lowercase character would be used as the subscripts into the
uppercase conversion arrays.</p>
<p align="center"><img src="rbafx663.gif" alt="Double-Byte Character Classification Structure"></p>
<h4><a name="HDRSBCS">Single-Byte Character Classification Structure</a></h4>
<p>The character classification information for the single-byte character is
stored within 2 bytes (16 bits) with one element of the Array(256) for each
single-byte character. The decimal value for the hexadecimal code point for the
single-byte character is used as the subscript for the array.</p>
<p>Each bit represents a character classification. If the value of the bit is
set to 1, the character is of that classification. If set to 0, the character
is not of that classification. The bit representations are as follows:</p>
<p align="center"><img src="RBAFX552.gif" alt=
"Single-Byte Character Classification Structure"></p>
<br>
<br>
<table border width="80%">
<tr>
<th align="center" valign="top">Bit</th>
<th align="left" valign="top">Character Classification</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0-4</td>
<td align="left" valign="top" width="90%">Undefined</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Punctuation - characters classified as
punctuation characters</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">Graph - characters classified as printable
characters, not including the space character</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">Alphabetic - characters classified as
letters</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="left" valign="top">Upper - characters classified as uppercase
letters</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="left" valign="top">Lower - characters classified as lowercase
letters</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="left" valign="top">Control - characters to be classified as control
characters</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="left" valign="top">Print - characters classified as printable
characters, including the space character</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="left" valign="top">Blank - characters classified as blank
characters</td>
</tr>
<tr>
<td align="center" valign="top">13</td>
<td align="left" valign="top">Space - characters classified as white-space
characters</td>
</tr>
<tr>
<td align="center" valign="top">14</td>
<td align="left" valign="top">Digit - characters classified as numeric
digits</td>
</tr>
<tr>
<td align="center" valign="top">15</td>
<td align="left" valign="top">Hexadecimal digit - characters classified as
hexadecimal digits</td>
</tr>
</table>
<br>
<p>As illustrated in the example below, the conversion is performed by using
the code point for the single-byte character as the subscript into the array.
For example, if you have a single-byte character that has a code point of 'AE',
use the decimal value of this code point as the subscript into the array. The
Binary(2) element of the array contains the 16 character classification bits.
This example shows that this character is of the print, upper, and alphabetic
character classifications.</p>
<p align="center"><img src="RBAFX553.gif" alt=
"Character classifications example"></p>
<br>
<h4><a name="HDRDBCSX">Double-Byte Character Classification Structure</a></h4>
<p>The character classification information for the double-byte characters are
stored within an Array(256) of Binary(4) in which the Binary(4) elements of
this array contain offsets to a second Array(256) of Binary(4). The Binary(4)
elements of the second array contain the 4 bytes (32 bits) that hold the bit
representation for the double-byte character classification.</p>
<p>If the offset in the first array is set to zero, this double-byte character
range is not defined. For example, if you have a double-byte code point 'CDFE'
and the offset for the first array is set to zero, this would indicate that all
double-byte characters for this locale in the range where the left-most byte
was 'CD' have no character classification available.</p>
<p>The double-byte code point for the character is used as the subscripts to
access the array. The left-most byte of the double-byte character is used to
access the first Array(256) of Binary(4). Within the subscripts of the first
array are offsets to the second Array(256) of Binary(4). The right-most byte of
the double-byte character is used as the subscript to access this second array.
Within this subscript are the 32 bits that contain the character classification
information.</p>
<p>Each bit represents a character classification. If the value of the bit is
set to 1, the character is of that classification. If set to 0, the character
is not of that classification. The bit representations are as follows:</p>
<p align="center"><img src="RBAFX554.gif" alt=
"Double-Byte Character Classification Structure"></p>
<br>
<br>
<table border width="80%">
<tr>
<th align="center" valign="top">Bit</th>
<th align="left" valign="top">Character Classification</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0-20</td>
<td align="left" valign="top" width="90%">Undefined</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="left" valign="top">Punctuation - characters classified as
punctuation characters</td>
</tr>
<tr>
<td align="center" valign="top">22</td>
<td align="left" valign="top">Graph - characters classified as printable
characters, not including the space character</td>
</tr>
<tr>
<td align="center" valign="top">23</td>
<td align="left" valign="top">Alphabetic - characters classified as
letters</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="left" valign="top">Upper - characters classified as uppercase
letters</td>
</tr>
<tr>
<td align="center" valign="top">25</td>
<td align="left" valign="top">Lower - characters classified as lowercase
letters</td>
</tr>
<tr>
<td align="center" valign="top">26</td>
<td align="left" valign="top">Control - characters to be classified as control
characters</td>
</tr>
<tr>
<td align="center" valign="top">27</td>
<td align="left" valign="top">Print - characters classified as printable
characters, including the space character</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="left" valign="top">Blank - characters classified as blank
characters</td>
</tr>
<tr>
<td align="center" valign="top">29</td>
<td align="left" valign="top">Space - characters classified as white-space
characters</td>
</tr>
<tr>
<td align="center" valign="top">30</td>
<td align="left" valign="top">Digit - characters classified as numeric
digits</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="left" valign="top">Hexadecimal digit - characters classified as
hexadecimal digits</td>
</tr>
</table>
<br>
<p>As illustrated in the example below, if you had a double-byte character
'D2AE', the decimal value of 'D2' is used as the subscript for the first array.
The offset of 768 at this subscript is used to gain access to the second array.
The decimal value of 'AE' is then used as the subscript for the second array.
At this subscript are the 32 bits that contain the character classification
information for the double-byte character. This example shows that this
character is of the print, upper, and alphabetic character classifications.</p>
<p align="center"><img src="RBAFX555.gif" alt=
"Character classifications example"></p>
<br>
<br>
<h4><a name="HDR4BCSX">Four-Byte Character Classification Structure</a></h4>
<p>The character classification information for the four-byte characters is stored
within an Array(256) of Binary(4). The Binary(4) elements of this array
contain offsets to a second Array(256) of Binary(4). The Binary(4) elements
of this second array contain offsets
to a third Array(256) of Binary(4). The Binary(4) elements of this
third array contain offsets to a fourth
Array(256) of Binary(4). The Binary(4)
elements of the fourth array contain the 4 bytes (32 bits) that hold the bit
representation for the four-byte character classification.</p>
<p>If the offset in the Binary(4) element of the first array is zero, then
this four-byte character range is not defined. For
example, if you have an four-byte code point '000040CE' and the offset
in the first array was set to zero, this
would indicate that all four-byte characters for this locale in the
range where the left-most byte is '00' have no character classification
available. The same is also true when the offset in the second or third array
is zero.</p>
<p>The four-byte code point for the character is used as the subscripts to
access the arrays. The left-most byte of the four-byte character is used to
access the first Array(256) of Binary(4). Within the subscripts of the first
array are offsets to the second Array(256) of Binary(4). The second left-most
byte of the four-byte character is used as the subscript to access this second
array. Within the subscripts of the second array are offsets to the third
Array(256) of Binary(4). The third left-most byte of the four-byte character
is used as the subscript to access this third array. Within the subscripts
of the third array are offsets to the fourth Array(256) of Binary(4).
The right-most byte of the four-byte character is used as the subscript to
access this fourth array. Within this subscript are the 32 bits that
contain the character classification information.</p>
<p>Each bit represents a character classification. If the value of the bit is
set to 1, the character is of that classification. If set to 0, the character
is not of that classification. The bit representations are as follows:</p>
<p align="center"><img src="RBAFX554.gif" alt="Four-Byte Character Classification Structure"></p>
<br>
<br>
<table border width="80%">
<tr>
<th align="center" valign="top">Bit</th>
<th align="left" valign="top">Character Classification</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0-20</td>
<td align="left" valign="top" width="90%">Undefined</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="left" valign="top">Punctuation - characters classified as
punctuation characters</td>
</tr>
<tr>
<td align="center" valign="top">22</td>
<td align="left" valign="top">Graph - characters classified as printable
characters, not including the space character</td>
</tr>
<tr>
<td align="center" valign="top">23</td>
<td align="left" valign="top">Alphabetic - characters classified as
letters</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="left" valign="top">Upper - characters classified as uppercase
letters</td>
</tr>
<tr>
<td align="center" valign="top">25</td>
<td align="left" valign="top">Lower - characters classified as lowercase
letters</td>
</tr>
<tr>
<td align="center" valign="top">26</td>
<td align="left" valign="top">Control - characters to be classified as control
characters</td>
</tr>
<tr>
<td align="center" valign="top">27</td>
<td align="left" valign="top">Print - characters classified as printable
characters, including the space character</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="left" valign="top">Blank - characters classified as blank
characters</td>
</tr>
<tr>
<td align="center" valign="top">29</td>
<td align="left" valign="top">Space - characters classified as white-space
characters</td>
</tr>
<tr>
<td align="center" valign="top">30</td>
<td align="left" valign="top">Digit - characters classified as numeric
digits</td>
</tr>
<tr>
<td align="center" valign="top">31</td>
<td align="left" valign="top">Hexadecimal digit - characters classified as
hexadecimal digits</td>
</tr>
</table>
<br>
<p>As illustrated in the example below, if you had a four-byte character
'0001D15F',
the value of '00' is used as the subscript for the
first array of the character classification information. The offset of 636 at this
subscript is used to gain access to the second array.
The value of
'01' is used as the subscript for the second array to access the third array.
The offset of A36 at this
subscript is used to gain access to the third array and the value of
'D1' is used as the subscript for the third array to access the fourth array.
The offset of 1236 at this
subscript is used to gain access to the fourth array and the value of
'5F' is used as the subscript to access the fourth array.
Within this subscript are the 32 bits that contain the character classification
information.</p>
<p align="center"><img src="rbafx664.gif" alt="Character classifications example"></p>
<h3>LC_COLLATE - Character Collation Format</h3>
<p>The format for which this information is returned is determined by the
locale data type. For example, if the locale data type is 1, the information
returned for this category would be in the Single-byte Character Collation
Structure. For a detailed description of each field, see <a href="../apiref/pns.htm">Path
Name Format</a>.</p>
<p>The explanations for the various arrays that are returned by the LC_COLLATE
category all assume base zero.</p>
<br>
<h4>Single-Byte Character Collation Structure</h4>
<p>The following information is returned for the single-byte character
collation structure.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of weights and sort rules.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to sort rules. Refer to the <a href=
"#HDRSRTRULE">Character Collation Sort Rules</a> for further information on
this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to single-byte character collating table.
Refer to the <a href="#HDRSBCCT">Single-byte Character Collating Table</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to multi-character collating elements.
Refer to the <a href="#HDRMULCH">Multi-Character Collating Elements</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to single-byte one-to-many character
mappings. Refer to the <a href="#HDROTMMP">One-to-Many Character Mappings</a>
for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4>Double-Byte Character Collation Structure</h4>
<p>The following information is returned for the double-byte character
collation structure.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of weights and sort rules.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to sort rules. Refer to the <a href=
"#HDRSRTRULE">Character Collation Sort Rules</a> for further information on
this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte character collating table.
Refer to the <a href="#HDRDBCCT">Double-byte Character Collating Table</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to multi-character collating elements.
Refer to the <a href="#HDRMULCH">Multi-Character Collating Elements</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte one-to-many character
mappings. Refer to the <a href="#HDROTMMP">One-to-Many Character Mappings</a>
for further information on this field.<br>
<br>
</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4>Mixed-Byte Character Collation Structure</h4>
<p>The following information is returned for the mixed-byte character collation
structure. If the data returned is EBCDIC mixed-byte, the shift out and shift
in control characters are only returned for the multi-character collating
elements.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of weights and sort rules.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to sort rules. Refer to the <a href=
"#HDRSRTRULE">Character Collation Sort Rules</a> for further information on
this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to single-byte character collating table.
Refer to the <a href="#HDRSBCCT">Single-byte Character Collating Table</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte character collating table.
Refer to the <a href="#HDRDBCCT">Double-byte Character Collating Table</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to multi-character collating elements.
Refer to the <a href="#HDRMULCH">Multi-Character Collating Elements</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to single-byte one-to-many character
mappings. Refer to the <a href="#HDROTMMP">One-to-Many Character Mappings</a>
for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to double-byte one-to-many character
mappings. Refer to the <a href="#HDROTMMP">One-to-Many Character Mappings</a>
for further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4>Four-Byte Character Collation Structure</h4>
<p>The following information is returned for the four-byte character
collation structure.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of weights and sort rules.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to sort rules. Refer to the <a href=
"#HDRSRTRULE">Character Collation Sort Rules</a> for further information on
this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to four-byte character collating table.
Refer to the <a href="#HDR4BCCT">Four-byte Character Collating Table</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to multi-character collating elements.
Refer to the <a href="#HDRMULCH">Multi-Character Collating Elements</a> for
further information on this field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to four-byte one-to-many character
mappings. Refer to the <a href="#HDROTMMP">One-to-Many Character Mappings</a>
for further information on this field.<br>
<br>
</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRSRTRULE">Character Collation Sort Rules</a></h4>
<p>The sort rules are returned as an Array(*) of Binary(4) where the number of
Binary(4) elements (or sort rules) is determined by the Number of weights and
sort rules field. Each Binary(4) element is a sort rule. The sort rules are
applied when comparing strings and they apply to all the collating element
tables returned. The first sort rule is applied when comparing strings using
the first weight; the second sort rule is applied when comparing strings using
the second weight, and so on. The possible sort rules are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Forward - specifies that comparison operations
for the weight level proceed from the start of the string towards the end of
the string.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Backward - specifies that comparison operations
for the weight level proceed from the end of the string towards the beginning
of the string.</td>
</tr>
<tr>
<td align="left" valign="top"><em>8</em></td>
<td align="left" valign="top">Position - specifies that comparison operations
for the weight level will consider the relative position of elements in the
strings not subject to ignore. Refer to <a href="#HDRORDWGHT">Orders and
Weights</a> for further information on the ignore value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>9</em></td>
<td align="left" valign="top">Forward/Position - specifies that comparison
operations for the weight level proceed from the start of the string towards
the end of the string and that comparison operations for the weight level will
consider the relative position of elements in the strings not subject to
ignore. Refer to <a href="#HDRORDWGHT">Orders and Weights</a> for further
information on the ignore value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>10</em></td>
<td align="left" valign="top">Backward/Position - specifies that comparison
operations for the weight level proceed from the end of the string towards the
beginning of the string and that comparison operations for the weight level
will consider the relative position of elements in the strings not subject to
ignore. Refer to <a href="#HDRORDWGHT">Orders and Weights</a> for further
information on the ignore value.</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRORDWGHT">Orders and Weights</a></h4>
<p>The order and weights are returned as an Array(*) of Binary(4). The first
element in the array specifies the order for the character or multi-character.
The remaining elements are the weights for the character or multi-character.
The number of remaining elements is determined by the Number of weights and
sort rules field. In other words, the total number of elements in the array is
1 + Number of weights and sort rules. Refer to <a href="#HDRSBCCT">Single-byte
Character Collating Table</a> , <a href="#HDRDBCCT">Double-byte Character
Collating Table</a> or <a href="#HDR4BCCT">Four-byte Character
Collating Table</a> for further information on the how the orders and weights
are returned.</p>
<p>Each collating element is assigned a collation value (order) that defines
its order in the character collation sequence in the locale. This order is used
by regular expressions and pattern matching, and if no collation weight is
explicitly defined (Number of weights and sort rules field equals zero), it
also serves as the collation weight for sorting.</p>
<p>The collation weights are used when comparing two strings to determine their
relative order. The following special values are possible for the weight:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>-1</em></td>
<td align="left" valign="top">Indicates that when strings are compared using
weights at the level where the -1 is specified, the collating element is
ignored as if the string did not contain the collating element.</td>
</tr>
<tr>
<td align="left" valign="top"><em>-2</em></td>
<td align="left" valign="top">Indicates that this collating element is mapped
into a string of collating elements. When this value is encountered, the
replacement string for the one-to-many mapping is found in the appropriate
one-to-many character mapping structure. Refer to <a href="#HDROTMMP">
One-to-Many Character Mappings</a> for further information on one-to-many
mappings.</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRSBCCT">Single-byte Character Collating Table</a></h4>
<p>The single-byte character collating information is stored within an
Array(256) of Binary(4). The Binary(4) elements contain offsets to the order
and weights for that collating element. Refer to <a href="#HDRORDWGHT">Orders
and Weights</a> for further information on the order and weights.</p>
<p>The decimal value for the single-byte code point for the character is used
as the subscript to access the collating element array. As illustrated in the
example below, if you had a character with a code point of 'C1', you would use
the decimal value of this code point as the subscript into the array. The
offset of 698 at this subscript is used to gain access to the order and weights
for that character. Assuming that the number of weights and sort rules field is
set to 2, the example shows that this character has an order of 17 and weights
of 21 and 43.</p>
<p align="center"><img src="RBAFX556.gif" alt=
"Single-byte Character Collating Table"></p>
<p>If the offset to the order and weights is set to a value of zero, this
indicates that there is no collating value available for that collating
element.</p>
<br>
<h4><a name="HDRDBCCT">Double-byte Character Collating Table</a></h4>
<p>The double-byte character collating information is stored within an
Array(256) of Binary(4). The Binary(4) elements of this first array contain
offsets to a second Array(256) of Binary(4). This second array contains offsets
to the order and weights for that collating element. Refer to <a href=
"#HDRORDWGHT">Orders and Weights</a> for further information on the order and
weights.</p>
<p>The double-byte code point for the character is used as the subscripts to
access the collating element arrays. The left-most byte of the double-byte
character is used to access the first Array(256) of Binary(4). Within the
subscripts of the first array are offsets to the second Array(256) of
Binary(4). The right-most byte of the double-byte character is used as the
subscript to access this second array. Within the subscripts of the second
array are offsets to the order and weights for that double-byte character.</p>
<p>As illustrated in the example below, if you had a double-byte character
'D2AE', the decimal value of 'D2' is used as the subscript for the first array.
The offset of 636 at this subscript is used to gain access to the second array
and the decimal value of 'AE' is used as the subscript for the second array.
The offset of 940 is used to gain access to the order and weights. Assuming
that the number of weights and sort rules field is set to 2, the example shows
that this double-byte character has an order of 41 and weights of 60 and
72.</p>
<p align="center"><img src="RBAFX557.gif" alt=
"Double-byte Character Collating Table"></p>
<p>If the offset in the first array is set to zero, this indicates that there
are no collating values available for this double-byte character range of
collating elements. For example, if you have a double-byte code point 'CDFE'
and the offset for the first array is set to zero, this would indicate that all
double-byte characters for this locale in the range where the left-most byte
was 'CD' have no collating values available. Or, if the offset in the second
array is set to zero, this indicates that there are no collating values
available for this double-byte collating element. For example, if you have a
double-byte code point 'CDFE' and the offset for the first array is not zero,
but the offset for the second array is zero, then this indicates that there are
no collating values available for this double-byte character.</p>
<br>
<h4><a name="HDR4BCCT">Four-byte Character Collating Table</a></h4>
<p>The four-byte character collating information is stored within an
Array(256) of Binary(4).
The Binary(4) elements of this first array contain
offsets to a second Array(256) of Binary(4).
The Binary(4) elements of this second array contain
offsets to a third Array(256) of Binary(4).
The Binary(4) elements of this third array contain
offsets to a fourth Array(256) of Binary(4).
This fourth array contains offsets
to the order and weights for that collating element. Refer to <a href=
"#HDRORDWGHT">Orders and Weights</a> for further information on the order and
weights.</p>
<p>The four-byte code point for the character is used as the subscripts to
access the collating element arrays. The left-most byte of the four-byte
character is used to access the first Array(256) of Binary(4). Within the
subscripts of the first array are offsets to the second Array(256) of
Binary(4). The second left-most byte of the four-byte character is used as the
subscript to access this second array. Within the
subscripts of the second array are offsets to the third Array(256) of
Binary(4). The third left-most byte of the four-byte character is used as the
subscript to access this third array. Within the
subscripts of the third array are offsets to the fourth Array(256) of
Binary(4). The rightmost byte of the four-byte character is used as the
subscript to access this fourth array.
Within the subscripts of the fourth
array are offsets to the order and weights for that four-byte character.</p>
<p>As illustrated in the example below, if you had a four-byte character
'0001D15F', the value of '00' is used as the subscript for the first array.
The offset of 636 at this subscript is used to gain access to the second array
and the value of '01' is used as the subscript for the second array.
The offset of A36 at this subscript is used to gain access to the third array
and the value of 'D1' is used as the subscript for the third array.
The offset of 1236 at this subscript is used to gain access to the fourth array
and the value of '5F' is used as the subscript for the fourth array.
The offset of 1636 is used to gain access to the order and weights. Assuming
that the number of weights and sort rules field is set to 2, the example shows
that this four-byte character has an order of 40 and weights of 60 and
72.</p>
<p align="center"><img src="rbafx665.gif" alt="Four-byte Character Collating Table"></p>
<p>If the offset in the first array is set to zero, this indicates that there
are no collating values available for this four-byte character range of
collating elements. For example, if you have a four-byte code point '0000CDFE'
and the offset for the first array is set to zero, this would indicate that all
four-byte characters for this locale in the range where the left-most byte
was '00' have no collating values available. Or, if the offset in the second
array is set to zero, this indicates that there are no collating values
available for this four-byte collating element. For example, if you have a
four-byte code point '0000CDFE' and the offset for the first array is not zero,
but the offset for the second array is zero, then this indicates that there are
no collating values available for this four-byte character. This is also true
for the third and fourth arrays.</p>
<br>
<h4><a name="HDRMULCH">Multi-Character Collating Elements</a></h4>
<p>The multi-character collating elements are returned as a character(*) field.
The offset to the first multi-character element returned is the offset provided
to the start of this field in the main structure. If the offset to the first
multi-character element is zero, then there are no multi-character elements
available. All elements are of the following format: (For a detailed
description of each field, see <a href="../apiref/pns.htm">Path name format</a>.)</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Offset to multi-character collating
elements.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of multi-character collating element.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to order and weights for the
multi-character element. Refer to the <a href="#HDRORDWGHT">Orders and
Weights</a> for further information on this field.&gt;</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to next multi-character collating element
structure.</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDROTMMP">One-to-Many Character Mappings</a></h4>
<p>The one-to-many character mappings are returned as a character(*) field. The
offset to the first one-to-many mapping element returned is the offset provided
to the start of this field in the main structure. If the offset to the first
one-to-many mapping element is zero, then there are no one-to-many mapping
elements available. All elements are of the following format: (For a detailed
description of each field, see <a href="../apiref/pns.htm">Path name format</a>.)</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Offset to collating element. The
length of this field is determined by the type of data. For example, if the
type of data is single byte, then the length of the collating element is
1.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of replacement string.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of replacement strings.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to replacement string.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to next one-to-many character
mapping.</td>
</tr>
</table>
<br>
<br>
<h3>LC_TIME - Date and Time Formatting Format</h3>
<p>The following information is returned for the date and time formatting
category. For a detailed description of each field, see <a href="../apiref/pns.htm">Path
Name Format</a>.</p>
<p>The date and time formats have conversion specifiers that are used to build
the formats. Refer to <a href="#HDRCONVSP">Date and Time Conversion
Specifiers</a> for the list of conversion specifiers and their meaning.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to date and time representation</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of date and time representation</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to date representation</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of date representation</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to time representation</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of time representation</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to ante meridiem and post meridiem
representation</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of ante meridiem and post meridiem
representation</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to time representation in a 12 hour clock
format</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of time representation in a 12 hour clock
format</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to abbreviated weekday names</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of abbreviated weekday names</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to full weekday names</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of full weekday names</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to abbreviated month names</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of abbreviated month names</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to full month names</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of full month names</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to era</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of era</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to era date format</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of era date format</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to era time format</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of era time format</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to era date and time format</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of era date and time format</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to alternate digits</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of alternate digits</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Date and time data</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRCONVSP">Date and Time Conversion Specifiers</a></h4>
<p>The conversion specifiers are used to build the formats for the date and
time information. An example for a time format is %H:%M:%S. This time format
specifies the hours as a decimal number followed by the minutes as a decimal
number and the seconds as a decimal number with the colon (:) as the time
separator.</p>
<table border width="80%">
<tr>
<th align="center" valign="top">Specifier</th>
<th align="left" valign="top">Conversion Specifier Description</th>
</tr>
<tr>
<td align="center" valign="top" width="15%">%a</td>
<td align="left" valign="top" width="85%">Abbreviated weekday name</td>
</tr>
<tr>
<td align="center" valign="top">%A</td>
<td align="left" valign="top">Full weekday name</td>
</tr>
<tr>
<td align="center" valign="top">%b</td>
<td align="left" valign="top">Abbreviated month name</td>
</tr>
<tr>
<td align="center" valign="top">%B</td>
<td align="left" valign="top">Full month name</td>
</tr>
<tr>
<td align="center" valign="top">%c</td>
<td align="left" valign="top">Appropriate date and time representation</td>
</tr>
<tr>
<td align="center" valign="top">%C</td>
<td align="left" valign="top">Long format date and time representation</td>
</tr>
<tr>
<td align="center" valign="top">%d</td>
<td align="left" valign="top">Day of the month as a decimal number (01,31)</td>
</tr>
<tr>
<td align="center" valign="top">%D</td>
<td align="left" valign="top">Date in the format %m/%d/%y</td>
</tr>
<tr>
<td align="center" valign="top">%e</td>
<td align="left" valign="top">Day of the month as a decimal number (1,31) in a
2-digit field with leading space character fill</td>
</tr>
<tr>
<td align="center" valign="top">%E</td>
<td align="left" valign="top">Combined alternative era year and name,
respectively in %o %N format</td>
</tr>
<tr>
<td align="center" valign="top">%h</td>
<td align="left" valign="top">Abbreviated month name (same as %b)</td>
</tr>
<tr>
<td align="center" valign="top">%H</td>
<td align="left" valign="top">Hour (24-hour clock) as a decimal number
(00,23)</td>
</tr>
<tr>
<td align="center" valign="top">%I</td>
<td align="left" valign="top">Hour (12-hour clock) as a decimal number
(01,12)</td>
</tr>
<tr>
<td align="center" valign="top">%j</td>
<td align="left" valign="top">Day of the year as a decimal number
(001,366)</td>
</tr>
<tr>
<td align="center" valign="top">%m</td>
<td align="left" valign="top">Month as a decimal number (01,12)</td>
</tr>
<tr>
<td align="center" valign="top">%M</td>
<td align="left" valign="top">Minute as a decimal number (00,59)</td>
</tr>
<tr>
<td align="center" valign="top">%n</td>
<td align="left" valign="top">Newline character</td>
</tr>
<tr>
<td align="center" valign="top">%N</td>
<td align="left" valign="top">Alternative era name</td>
</tr>
<tr>
<td align="center" valign="top">%o</td>
<td align="left" valign="top">Alternative era year</td>
</tr>
<tr>
<td align="center" valign="top">%O</td>
<td align="left" valign="top">Alternative digits</td>
</tr>
<tr>
<td align="center" valign="top">%p</td>
<td align="left" valign="top">Ante meridiem (am) or post meridiem (pm)</td>
</tr>
<tr>
<td align="center" valign="top">%r</td>
<td align="left" valign="top">Time in AM/PM notation according to U.K./U.S.
conventions in the format %I:%M:%S %p</td>
</tr>
<tr>
<td align="center" valign="top">%R</td>
<td align="left" valign="top">Time in 24 hour notation in the %H:%M format</td>
</tr>
<tr>
<td align="center" valign="top">%S</td>
<td align="left" valign="top">Second as a decimal number (00,61) - the 61
allows for the leap second and double leap second</td>
</tr>
<tr>
<td align="center" valign="top">%t</td>
<td align="left" valign="top">Tab character</td>
</tr>
<tr>
<td align="center" valign="top">%T</td>
<td align="left" valign="top">Time in format %H:%M:%S</td>
</tr>
<tr>
<td align="center" valign="top">%U</td>
<td align="left" valign="top">Week number of the year (Sunday as the first day
of the week) as a decimal number (00,53)</td>
</tr>
<tr>
<td align="center" valign="top">%w</td>
<td align="left" valign="top">Weekday (Sunday as the first day of the week) as
a decimal number (0,6)</td>
</tr>
<tr>
<td align="center" valign="top">%W</td>
<td align="left" valign="top">Week number of the year (Monday as the first day
of the week) as a decimal number (00,53)</td>
</tr>
<tr>
<td align="center" valign="top">%x</td>
<td align="left" valign="top">Appropriate date representation</td>
</tr>
<tr>
<td align="center" valign="top">%X</td>
<td align="left" valign="top">Appropriate time representation</td>
</tr>
<tr>
<td align="center" valign="top">%y</td>
<td align="left" valign="top">Year without a century as a decimal number
(00,99)</td>
</tr>
<tr>
<td align="center" valign="top">%Y</td>
<td align="left" valign="top">Year with a century as a decimal number</td>
</tr>
<tr>
<td align="center" valign="top">%Z</td>
<td align="left" valign="top">Timezone name</td>
</tr>
</table>
<br>
<br>
<h3>LC_NUMERIC - Numeric and Non-Monetary Formatting Format</h3>
<p>The following information is returned for the numeric and non-monetary
formatting category. For a detailed description of each field, see <a href=
"../apiref/pns.htm">Path name format</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to decimal delimiter</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of decimal delimiter</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to thousands separator</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of thousands separator</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to digit grouping</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of digit groupings</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Numeric formatting data</td>
</tr>
</table>
<br>
<br>
<h3>LC_MESSAGES - Affirmative and Negative Responses Format</h3>
<p>The following information is returned for the affirmative and negative
responses category. For a detailed description of each field, see <a href=
"../apiref/pns.htm">Path name format</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to affirmative response expression</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of affirmative response expression</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to negative response expression</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of negative response expression</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to affirmative response string</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of affirmative response string</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to negative response string</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of negative response string</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Message response data</td>
</tr>
</table>
<br>
<br>
<h3>LC_MONETARY - Monetary Related Numeric Formatting Format</h3>
<p>The following information is returned for the monetary-related numeric
formatting category. For a detailed description of each field, see <a href=
"../apiref/pns.htm">Path name format</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th valign="bottom" align="center">Dec</th>
<th valign="bottom" align="center">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of fractional digits for international
currency symbol</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of fractional digits for currency
symbol</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Currency symbol positioning for monetary
non-negative values</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Currency symbol positioning for monetary negative
values</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Currency symbol separator for monetary
non-negative values</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Currency symbol separator for monetary negative
values</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Positive sign positioning for monetary
non-negative values</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Negative sign positioning for monetary negative
values</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to international currency symbol</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of international currency symbol</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to local currency symbol</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of local currency symbol</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to monetary decimal delimiter</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of monetary decimal delimiter</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to monetary thousands separator</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of monetary thousands separator</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to monetary digit grouping</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of monetary digit groupings</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to monetary positive sign</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of monetary positive sign</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to monetary negative sign</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of monetary negative sign</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Monetary formatting data</td>
</tr>
</table>
<br>
<br>
<h3>LC_TOD - Time Zone Information Format</h3>
<p>The following information is returned for the time zone information
category. For a detailed description of each field, see <a href="#HDRFLDDCS">
Field Descriptions</a>.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">CCSID of locale data</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Locale data type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">Array(4) of BINARY(4)</td>
<td align="left" valign="top">Start for daylight savings time</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">Array(4) of BINARY(4)</td>
<td align="left" valign="top">End for daylight savings time</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Greenwich Mean Time difference</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Daylight savings time shift</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to time zone name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of time zone name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to daylight savings time name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of daylight savings time name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Time zone data</td>
</tr>
</table>
<br>
<br>
<h3>LC_ALL - All Locale Categories</h3>
<p>All information for all categories is returned in the following format.
Refer to the specific locale category formats for details on each locale
category. For a detailed description of each field, see <a href="#HDRFLDDCS">
Field Descriptions</a>.</p>
<p>If the locale does not have any information defined for a locale category,
the offset to the category field is set to zero.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Offset to LC_CTYPE category</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to LC_COLLATE category</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to LC_TIME category</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to LC_NUMERIC category</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to LC_MESSAGES category</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to LC_MONETARY category</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to LC_TOD category</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Category information</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRFLDDCS">Field Descriptions</a></h3>
<p>The following section describes the fields returned in further detail.</p>
<p><strong>Bytes available.</strong> The number of bytes of data available to
be returned. All available data is returned if enough space is provided.</p>
<p><strong>Bytes returned.</strong> The number of bytes of data returned.</p>
<p><strong>Category information.</strong> The data for all the locale
categories. Use the corresponding offsets and lengths to access the data that
is included in this field. Refer to each locale category for further
information.</p>
<p><strong>CCSID of locale data.</strong> The coded character set identifier of
the locale information that is returned.</p>
<p><strong>Currency symbol positioning for monetary negative values.</strong>
Indicates where the local or international currency symbol is positioned for a
monetary quantity with a negative value. The possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The currency symbol succeeds the value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The currency symbol precedes the value.</td>
</tr>
</table>
<p><strong>Currency symbol positioning for monetary non-negative
values.</strong> Indicates where the local or international currency symbol is
positioned for a monetary quantity with a non-negative value. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The currency symbol succeeds the value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The currency symbol precedes the value.</td>
</tr>
</table>
<p><strong>Currency symbol separator for monetary negative values.</strong>
Indicates whether a space separates the local or international currency symbol
from the value for a monetary quantity with a negative value. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">No space separates the currency symbol from the
value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">A space separates the currency symbol from the
value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">A space separates the currency symbol and the
negative sign string, if adjacent.</td>
</tr>
</table>
<p><strong>Currency symbol separator for monetary non-negative values.</strong>
Indicates whether a space separates the local or international currency symbol
from the value for a monetary quantity with a non-negative value. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">No space separates the currency symbol from the
value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">A space separates the currency symbol from the
value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">A space separates the currency symbol and the
positive sign string, if adjacent.</td>
</tr>
</table>
<p><strong>Date and time data.</strong> The data for the date and time
formatting. This includes the date and time representations, weekday names,
month names, era information and alternate digits. This information is returned
in the LC_TIME category. Use the corresponding offsets and lengths to get to
the data that is included in this field.</p>
<p><strong>Daylight savings time shift.</strong> The number of seconds that the
locale's time is shifted when Daylight Savings Time takes effect.</p>
<p><strong>End for daylight savings time.</strong> The instant when Daylight
Savings Time ceases to be in effect. The format for this field is 'month week
day time' with each field a Binary(4) value. For example, '0004 0000 0023 0000'
sets the end time as April 23 at midnight. The blank spaces between each
Binary(4) value is only used here for ease of reading. The actual value
returned will not have blanks placed between the Binary(4) values.</p>
<p><strong>Greenwich Mean Time difference.</strong> The number of minutes that
the locale's time zone is different from Greenwich Mean Time.</p>
<p><strong>Length of abbreviated month names.</strong> The length of the
abbreviated month names.</p>
<p><strong>Length of abbreviated weekday names.</strong> The length of the
abbreviated weekday names.</p>
<p><strong>Length of affirmative response expression.</strong> The length of
the affirmative response expression.</p>
<p><strong>Length of affirmative response string.</strong> The length of the
affirmative response string.</p>
<p><strong>Length of alternate digits.</strong> The length of the alternate
digits.</p>
<p><strong>Length of ante meridiem and post meridiem representation.</strong>
The length of the ante meridiem and post meridiem representation.</p>
<p><strong>Length of category information.</strong> The length of the category
information. This field is the length of only the first level of the category.
For example, if the LC_CTYPE category were specified and the data returned was
double-byte, this field would contain a value of 20 (5 Binary(4) fields in the
first level of the category). Whereas if the data returned was single-byte,
this field would contain a value of 1032 (2 Binary(4), 2 char(256) and 1
Array(256) of unsigned Binary(2) fields in the first level of the
category).</p>
<p><strong>Length of date representation.</strong> The length of the date
representation.</p>
<p><strong>Length of date and time representation.</strong> The length of the
date and time representation.</p>
<p><strong>Length of daylight savings time name.</strong> The length of the
daylight savings time name.</p>
<p><strong>Length of decimal delimiter.</strong> The length of the decimal
delimiter.</p>
<p><strong>Length of era.</strong> The length of the era.</p>
<p><strong>Length of era date format.</strong> The length of the era date
format.</p>
<p><strong>Length of era date and time format.</strong> The length of the era
date and time format.</p>
<p><strong>Length of era time format.</strong> The length of the era time
format.</p>
<p><strong>Length of full weekday names.</strong> The length of the full
weekday names.</p>
<p><strong>Length of full month names.</strong> The length of the full month
names.</p>
<p><strong>Length of international currency symbol.</strong> The length of the
international currency symbol.</p>
<p><strong>Length of local currency symbol.</strong> The length of the local
currency symbol.</p>
<p><strong>Length of monetary decimal delimiter.</strong> The length of the
monetary decimal delimiter.</p>
<p><strong>Length of monetary negative sign.</strong> The length of the
monetary negative sign.</p>
<p><strong>Length of monetary positive sign.</strong> The length of the
monetary positive sign.</p>
<p><strong>Length of monetary thousands separator.</strong> The length of the
monetary thousands separator.</p>
<p><strong>Length of multi-character collating element.</strong> The length of
the multi-character collating element in bytes.</p>
<p><strong>Length of negative response expression.</strong> The length of the
negative response expression.</p>
<p><strong>Length of negative response string.</strong> The length of the
negative response string.</p>
<p><strong>Length of replacement string.</strong> The length of the replacement
string for the one-to-many character mapping.</p>
<p><strong>Length of thousands separator.</strong> The length of the thousands
separator.</p>
<p><strong>Length of time representation.</strong> The length of the time
representation.</p>
<p><strong>Length of time representation of a 12-hour clock format.</strong>
The length of the time representation of a 12-hour clock format.</p>
<p><strong>Length of time zone name.</strong> The length of the time zone
name.</p>
<p><strong>Locale category key.</strong> The locale category key specified for
the Locale category key to return parameter on the call to the API.</p>
<p><strong>Locale data type.</strong> The indicator for the type of data
returned from the locale. The possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The data returned is single-byte.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">The data returned is double-byte (includes ISO
10646 16-bit character encoding standard (UCS2)).</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">The data returned is mixed single-byte and
double-byte.</td>
</tr>
<tr>
<td align="left" valign="top"><em>4</em></td>
<td align="left" valign="top">The data returned is UTF8 data.
</td>
</tr>
<tr>
<td align="left" valign="top"><em>5</em></td>
<td align="left" valign="top">The data returned is UTF32 data.
</td>
</tr>
</table>
<p><strong>Message response data.</strong> The data for the affirmative and
negative responses. This includes the affirmative and negative response
expressions and strings information. This information is returned in the
LC_MESSAGES category. Use the corresponding offsets and lengths to access the
data that is included in this field.</p>
<p><strong>Monetary formatting data.</strong> The data for monetary formatting.
This includes the fractional digit, currency symbol positioning, currency
symbol separator, positive and negative sign positioning, currency symbol,
decimal delimiter, thousands separator, positive and negative sign and digit
grouping information. This information is returned in the LC_MONETARY category.
Use the corresponding offsets and lengths to access the data that is included
in this field.</p>
<p><strong>Negative sign positioning for monetary negative values.</strong> An
integer representing a value indicating the positioning of the monetary
negative sign for a negative formatted monetary quantity. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Parentheses enclose the quantity and the local or
international currency symbol.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The negative sign string precedes the quantity
and local or international currency symbol.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">The negative sign string succeeds the quantity
and local or international currency symbol.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">The negative sign string precedes the local or
international currency symbol.</td>
</tr>
<tr>
<td align="left" valign="top"><em>4</em></td>
<td align="left" valign="top">The negative sign string succeeds the local or
international currency symbol.</td>
</tr>
</table>
<p><strong>Number of digit groupings.</strong> The number of digit
groupings.</p>
<p><strong>Number of fractional digits for currency symbol.</strong> An integer
representing the number of fractional digits (those to the right of the decimal
delimiter) to be written in a formatted monetary quantity using the local
currency symbol.</p>
<p><strong>Number of fractional digits for international currency
symbol.</strong> An integer representing the number of fractional digits (those
to the right of the decimal delimiter) to be written in a formatted monetary
quantity using the international currency symbol.</p>
<p><strong>Number of monetary digit groupings.</strong> The number of monetary
digit groupings.</p>
<p><strong>Number of replacement strings.</strong> The number of replacement
strings.</p>
<p><strong>Number of weights and sort rules.</strong> The number of weights and
sort rules for character collating. There is one corresponding sort rule for
each weight. Refer to <a href="#HDRSRTRULE">Character Collation Sort Rules</a>
for further information on the sort rules and <a href="#HDRORDWGHT">Orders and
Weights</a> for further information on the weights.</p>
<p><strong>Numeric formatting data.</strong> The data for the numeric,
non-monetary formatting. This includes the decimal delimiter, thousands
separator and digit grouping information. This information is returned in the
LC_NUMERIC category. Use the corresponding offsets and lengths to access the
data that is included in this field.</p>
<p><strong>Offset to abbreviated month names.</strong> Offset to the
abbreviated month names. The abbreviated month names consist of twelve quoted
strings separated by semicolons. The first string is the abbreviated name of
the first month of the year (January), the second the abbreviated name of the
second month, and so on. The conversion specifier for this field is %b. Refer
to <a href="#HDRCONVSP">Date and Time Conversion Specifiers</a> for the list of
conversion specifiers.</p>
<p><strong>Offset to abbreviated weekday names.</strong> Offset to the
abbreviated weekday names. The abbreviated weekday names consist of seven
quoted strings separated by semicolons. The first string is the abbreviated
name of the day corresponding to Sunday, the second is the abbreviated name of
the day corresponding to Monday, and so on. The conversion specifier for this
field is %a. Refer to <a href="#HDRCONVSP">Date and Time Conversion
Specifiers</a> for the list of conversion specifiers.</p>
<p><strong>Offset to affirmative response expression.</strong> Offset to the
quoted string of an extended regular expression that describes the acceptable
affirmative response to a question expecting an affirmative or negative
response.</p>
<p><strong>Offset to affirmative response string.</strong> Offset to the quoted
string that describes an acceptable affirmative response.</p>
<p><strong>Offset to alternative digits.</strong> Offset to the alternative
digits. The alternative digits is a group of quoted strings separated by
semicolons. The first string represents the alternate string for zero, the
second string represents the alternate string for one, and so on. A maximum of
100 alternate strings can be returned. The conversion specifier is %O. Refer to
<a href="#HDRCONVSP">Date and Time Conversion Specifiers</a> for the list of
conversion specifiers.</p>
<p><strong>Offset to ante meridiem and post meridiem representation.</strong>
Offset to the ante meridiem (am) and post meridiem (pm) representation. The
ante meridiem (before noon) and post meridiem (after noon) representation
consists of two quoted strings separated by a semicolon. The first string
represents the ante meridiem designation and the second string represents the
post meridiem designation. The conversion specifier for this field is %p. Refer
to <a href="#HDRCONVSP">Date and Time Conversion Specifiers</a> for the list of
conversion specifiers.</p>
<p><strong>Offset to category information.</strong> Offset to the start of the
category information returned.</p>
<p><strong>Offset to collating element.</strong> Offset to the collating
element that has a one-to-many mapping. The length of this field is determined
by the type of data that is being returned. For example, if the type of data is
single-byte, then the length of this field would be 1 byte.</p>
<p><strong>Offset to date representation.</strong> Offset to the date
representation. The date representation consists of a quoted string and can
contain any combination of characters and field descriptors that represent the
date. The conversion specifier for this field is %x. Refer to <a href=
"#HDRCONVSP">Date and Time Conversion Specifiers</a> for the list of conversion
specifiers.</p>
<p><strong>Offset to date and time representation.</strong> Offset to the date
and time representation. The date and time representation consists of a quoted
string and can contain any combination of characters and field descriptors that
represent the date and time. The conversion specifier for this field is %c.
Refer to <a href="#HDRCONVSP">Date and Time Conversion Specifiers</a> for the
list of conversion specifiers.</p>
<p><strong>Offset to daylight savings time name.</strong> Offset to the quoted
string of characters that represent the time zone when Daylight Savings Time is
in effect.</p>
<p><strong>Offset to decimal delimiter.</strong> Offset to the quoted string
containing a symbol that is used as the decimal delimiter (radix character) in
numeric, non-monetary formatted quantities.</p>
<p><strong>Offset to digit grouping.</strong> Offset to the digit grouping. The
digit grouping defines the size of each group of digits in formatted
non-monetary quantities. This field consists of a sequence of integers. Each
integer specifies the number of digits in each group, with the initial integer
defining the size of the group immediately preceding the decimal delimiter. The
following integers define the preceding groups. When the last integer is not
-1, then the size of the previous group (if any) is used repeatedly for the
remainder of the digits. When the last integer is -1, then no further grouping
is performed. The number of integers in the sequence is determined by the
Number of digit groupings field.</p>
<p><strong>Offset to double-byte character classification.</strong> Offset to
the character classification for a double-byte character. This information
indicates what classifications a character has, for example if the character is
a control character. Refer to the <a href="#HDRDBCSX">Double-Byte Character
Classification Structure</a> for further information on this field.</p>
<p><strong>Offset to double-byte character collating table.</strong> Offset to
the double-byte character collating table. Refer to the <a href="#HDRDBCCT">
Double-byte Character Collating Table</a> for further information on this
field.</p>
<p><strong>Offset to double-byte lowercase conversion mapping.</strong> Offset
to the lowercase conversion mapping for a double-byte character. This mapping
is used to find the lowercase character for the corresponding uppercase
character. Refer to the <a href="#HDRDCASE">Double-Byte Conversion Mapping
Structures</a> for further information on this field.</p>
<p><strong>Offset to double-byte one-to-many character mappings.</strong>
Offset to the double-byte one-to-many character mappings. Refer to the <a href=
"#HDROTMMP">One-to-Many Character Mappings</a> for further information on this
field.</p>
<p><strong>Offset to double-byte uppercase conversion mapping.</strong> Offset
to the uppercase conversion mapping for a double-byte character. This mapping
is used to find the uppercase character for the corresponding lowercase
character. Refer to the <a href="#HDRDCASE">Double-Byte Conversion Mapping
Structures</a> for further information on this field.</p>
<p><strong>Offset to era.</strong> Offset to the era. The era defines how the
years are counted and displayed for each era, corresponding to the %E
conversion specifier. The era consists of a quoted string in the format:
&quot;direction:offset:start_date:end_date:era_name:&quot;. If more than one era is
defined, each quoted string for each era is separated by a semicolon. Each
element of the era format is defined as:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>direction</em></td>
<td align="left" valign="top">Specifies a - (minus sign) or a + (plus sign)
character. The plus character indicates that years count in the positive
direction when moving from the start date to the end date. The minus character
indicates that years count in the negative direction when moving from the start
date to the end date.</td>
</tr>
<tr>
<td align="left" valign="top"><em>offset</em></td>
<td align="left" valign="top">Specifies a number representing the first year of
the era.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>start_date</em></td>
<td align="left" valign="top">Specifies the starting date of the era in the
yyyy/mm/dd format, where yyyy, mm and dd are the year, month and day,
respectively. Years prior to the year AD 1 are represented as negative
numbers.</td>
</tr>
<tr>
<td align="left" valign="top"><em>end_date</em></td>
<td align="left" valign="top">Specifies the ending date of the era in the same
form used for the start_date variable or one of the two special values -* or
+*. A -* value indicates that the ending date of the era extends backward to
the beginning of time. A +* value indicates that the ending date of the era
extends forward to the end of time.</td>
</tr>
<tr>
<td align="left" valign="top"><em>era_name</em></td>
<td align="left" valign="top">Specifies a string representing the name of the
era. The conversion specifier is %EC.</td>
</tr>
<tr>
<td align="left" valign="top"><em>era_format</em></td>
<td align="left" valign="top">Specifies a string for formatting the year in the
era. The conversion specifier is %EY.</td>
</tr>
</table>
<p>Refer to <a href="#HDRCONVSP">Date and Time Conversion Specifiers</a> for
the list of conversion specifiers.</p>
<p><strong>Offset to era date format.</strong> Offset to the era date format.
The era date format is a quoted string that defines the string used to
represent the date in the alternate-era format. The conversion specifier is
%Ex. Refer to <a href="#HDRCONVSP">Date and Time Conversion Specifiers</a> for
the list of conversion specifiers.</p>
<p><strong>Offset to era date and time format.</strong> Offset to the era date
and time format. The era date and time format is a quoted string that defines
the string used to represent the date and time in the alternate-era format. The
conversion specifier is %Ec. Refer to <a href="#HDRCONVSP">Date and Time
Conversion Specifiers</a> for the list of conversion specifiers.</p>
<p><strong>Offset to era time format.</strong> Offset to the era time format.
The era time format is a quoted string that defines the string used to
represent the time in the alternate-era format. The conversion specifier is
%EX. Refer to <a href="#HDRCONVSP">Date and Time Conversion Specifiers</a> for
the list of conversion specifiers.</p>
<p><strong>Offset to four-byte character classification.</strong> Offset to
the character classification for a four-byte character. This information
indicates what classifications a character has, for example if the character is
a control character. Refer to the <a href="#HDR4BCSX">Four-Byte Character
Classification Structure</a> for further information on this field.</p>
<p><strong>Offset to four-byte character collating table.</strong> Offset to
the four-byte character collating table. Refer to the <a href="#HDR4BCCT">
Four-byte Character Collating Table</a> for further information on this
field.</p>
<p><strong>Offset to four-byte lowercase conversion mapping.</strong> Offset
to the lowercase conversion mapping for a four-byte character. This mapping
is used to find the lowercase character for the corresponding uppercase
character. Refer to the <a href="#HDR4CASE">Four-Byte Conversion Mapping
Structures</a> for further information on this field.</p>
<p><strong>Offset to four-byte one-to-many character mappings.</strong>
Offset to the four-byte one-to-many character mappings. Refer to the <a href=
"#HDROTMMP">One-to-Many Character Mappings</a> for further information on this
field.</p>
<p><strong>Offset to four-byte uppercase conversion mapping.</strong> Offset
to the uppercase conversion mapping for a four-byte character. This mapping
is used to find the uppercase character for the corresponding lowercase
character. Refer to the <a href="#HDR4CASE">Four-Byte Conversion Mapping
Structures</a> for further information on this field.</p>
<p><strong>Offset to full month names.</strong> Offset to the full month names.
The full month names consists of twelve quoted strings separated by semicolons.
The first string is the full name of the first month of the year (January), the
second the full name of the second month, and so on. The conversion specifier
for this field is %B. Refer to <a href="#HDRCONVSP">Date and Time Conversion
Specifiers</a> for the list of conversion specifiers.</p>
<p><strong>Offset to full weekday names.</strong> Offset to the full weekday
names. The full weekday names consists of seven quoted strings separated by
semicolons. The first string is the full name of the day corresponding to
Sunday, the second is the full name of the day corresponding to Monday, and so
on. The conversion specifier for this field is %A. Refer to <a href=
"#HDRCONVSP">Date and Time Conversion Specifiers</a> for the list of conversion
specifiers.</p>
<p><strong>Offset to international currency symbol.</strong> Offset to the
international currency symbol. The international currency symbol consists of a
four character quoted string that denotes the symbol used for international
monetary quantities. The first three characters contain the alphabetic
international currency symbol. The fourth character is the character used to
separate the international currency symbol from the monetary quantity.</p>
<p><strong>Offset to LC_COLLATE category.</strong> Offset to the start of the
character collation information.</p>
<p><strong>Offset to LC_CTYPE category.</strong> Offset to the start of the
character classification and conversion information.</p>
<p><strong>Offset to LC_MESSAGES category.</strong> Offset to the start of the
affirmative and negative responses information.</p>
<p><strong>Offset to LC_MONETARY category.</strong> Offset to the start of the
monetary related numeric formatting information.</p>
<p><strong>Offset to LC_NUMERIC category.</strong> Offset to the start of the
numeric and non-monetary formatting information.</p>
<p><strong>Offset to LC_TIME category.</strong> Offset to the start of the date
and time formatting information.</p>
<p><strong>Offset to LC_TOD category.</strong> Offset to the start of the time
zone information.</p>
<p><strong>Offset to local currency symbol.</strong> Offset to the quoted
string that denotes the symbol used for local monetary quantities.</p>
<p><strong>Offset to monetary decimal delimiter.</strong> Offset to the quoted
string containing a symbol that is used as the decimal delimiter (radix
character) in monetary formatted quantities.</p>
<p><strong>Offset to monetary digit grouping.</strong> Offset to the monetary
digit grouping. The monetary digit grouping defines the size of each group of
digits in formatted monetary quantities. This field consists of a sequence of
integers. Each integer specifies the number of digits in each group, with the
initial integer defining the size of the group immediately preceding the
decimal delimiter. The following integers define the preceding groups. When the
last integer is not -1 then the size of the previous group (if any) is used
repeatedly for the remainder of the digits. When the last integer is -1 no
further grouping is performed. The number of integers in the sequence is
determined by the Number of monetary digits groupings field.</p>
<p><strong>Offset to monetary negative sign.</strong> Offset to the quoted
string used to indicate a negative-valued formatted monetary quantity.</p>
<p><strong>Offset to monetary positive sign.</strong> Offset to the quoted
string used to indicate a non-negative-valued formatted monetary quantity.</p>
<p><strong>Offset to monetary thousands separator.</strong> Offset to the
quoted string containing the symbol that is used as a separator for groups of
digits to the left of the decimal delimiter in formatted monetary
quantities.</p>
<p><strong>Offset to multi-character collating element.</strong> Offset to the
multi-character collating element. The multi-character collating element is a
sequence of two or more characters to be collated as an entity.</p>
<p><strong>Offset to multi-character collating elements.</strong> Offset to the
multi-character collating elements. Refer to the <a href="#HDRMULCH">
Multi-Character Collating Elements</a> for further information on this
field.</p>
<p><strong>Offset to negative response expression.</strong> Offset to the
quoted string of an extended regular expression that describes the acceptable
negative response to a question expecting an affirmative or negative
response.</p>
<p><strong>Offset to negative response string.</strong> Offset to the quoted
string that describes an acceptable negative response.</p>
<p><strong>Offset to next multi-character collating element.</strong> Offset to
the next multi-character collating element. A value of zero in this field
denotes the end of the list of multi-character collating elements.</p>
<p><strong>Offset to next one-to-many character mapping.</strong> Offset to the
next one-to-many character mapping. A value of zero in this field denotes the
end of the list of one-to-many character mappings.</p>
<p><strong>Offset to order and weights for the multi-character
element.</strong> Offset to the order and weights for the multi-character
collating element. Refer to the <a href="#HDRORDWGHT">Orders and Weights</a>
for further information on this field.</p>
<p><strong>Offset to replacement string.</strong> Offset to the replacement
string for a one-to-many mapping of a collating element. The replacement string
is comprised of one or more quoted strings separated by semicolons. The number
of replacement strings is determined by the number of replacement strings
field.</p>
<p><strong>Offset to single-byte character collating table.</strong> Offset to
the single-byte character collating table. Refer to the <a href="#HDRSBCCT">
Single-byte Character Collating Table</a> for further information on this
field.</p>
<p><strong>Offset to single-byte one-to-many character mappings.</strong>
Offset to the single-byte one-to-many character mappings. Refer to the <a href=
"#HDROTMMP">One-to-Many Character Mappings</a> for further information on this
field.</p>
<p><strong>Offset to sort rules.</strong> Offset to the sort rules for
character collation. These rules are applied when comparing single or
multi-character collating elements. Refer to the <a href="#HDRSRTRULE">
Character Collation Sort Rules</a> for further information on this field.</p>
<p><strong>Offset to thousands separator.</strong> Offset to a quoted string
containing a symbol that is used as the decimal separator for groups of digits
to the left of the decimal delimiter in numeric, non-monetary formatted
quantities.</p>
<p><strong>Offset to time representation.</strong> Offset to the time
representation. The time representation consists of a quoted string and can
contain any combination of characters and field descriptors that represent the
time. The conversion specifier for this field is %X. Refer to <a href=
"#HDRCONVSP">Date and Time Conversion Specifiers</a> for the list of conversion
specifiers.</p>
<p><strong>Offset to time representation of a 12-hour clock format.</strong>
Offset to the time representation of a 12-hour clock format. The time
representation of a 12-hour clock format consists of a quoted string and can
contain any combination of characters and field descriptors. The conversion
specifier for this field is %r. Refer to <a href="#HDRCONVSP">Date and Time
Conversion Specifiers</a> for the list of conversion specifiers.</p>
<p><strong>Offset to time zone name.</strong> Offset to the quoted string of
characters that represent the time zone name.</p>
<p><strong>Positive sign positioning for monetary non-negative values.</strong>
An integer set to a value indicating the positioning of the monetary positive
sign for a monetary quantity with a non-negative value. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Parentheses enclose the quantity and the local or
international currency symbol.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The positive sign string precedes the quantity
and local or international currency symbol.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">The positive sign string succeeds the quantity
and local or international currency symbol.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">The positive sign string precedes the local or
international currency symbol.</td>
</tr>
<tr>
<td align="left" valign="top"><em>4</em></td>
<td align="left" valign="top">The positive sign string succeeds the local or
international currency symbol.</td>
</tr>
</table>
<p><strong>Reserved.</strong> An ignored field.</p>
<p><strong>Single-byte character classification.</strong> The character
classification for a single-byte character. This information indicates what
classifications a character has, for example if the character is a control
character. Refer to the <a href="#HDRSBCS">Single-Byte Character Classification
Structure</a> for further information on this field.</p>
<p><strong>Single-byte lowercase conversion mapping.</strong> The lowercase
conversion mapping for a single-byte character. This mapping is used to find
the lowercase character for the corresponding uppercase character. Refer to the
<a href="#HDRSCASE">Single-Byte Conversion Mapping Structures</a> for further
information on this field.</p>
<p><strong>Single-byte uppercase conversion mapping.</strong> The uppercase
conversion mapping for a single-byte character. This mapping is used to find
the uppercase character for the corresponding lowercase character. Refer to the
<a href="#HDRSCASE">Single-Byte Conversion Mapping Structures</a> for further
information on this field.</p>
<p><strong>Start for daylight savings time.</strong> The instant when Daylight
Savings Time comes into effect. The format for this field is 'month week day
time' with each field a Binary(4) value. For example, '0010 0003 0006 0000'
sets the start time as the 3rd week of October at midnight on Saturday. The
blank spaces between each Binary(4) value is only used here for ease of
reading. The actual value returned will not have blanks placed between the
Binary(4) values.</p>
<p><strong>Time zone data.</strong> The data for the time zone information.
This includes daylight savings time, Greenwich Mean Time, and time zone
information. This information is returned in the LC_TOD category. Use the
corresponding offsets and lengths to access the data that is included in this
field.</p>
<br>
<h3>Error Messages</h3>
<table width="100%" cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top" nowrap>Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td align="left" valign="top">CPFA0AB E</td>
<td align="left" valign="top">Object name not a directory.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA0A2 E</td>
<td align="left" valign="top">Information passed to this operation was not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA0A3 E</td>
<td align="left" valign="top">Path name resolution causes looping.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA0A7 E</td>
<td align="left" valign="top">Path name too long.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA0A9 E</td>
<td align="left" valign="top">Object not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA0C1 E</td>
<td align="left" valign="top">CCSID &amp;1 not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA09C E</td>
<td align="left" valign="top">Not authorized to object.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA09E E</td>
<td align="left" valign="top">Object in use.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA09F E</td>
<td align="left" valign="top">Object damaged.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA092 E</td>
<td align="left" valign="top">Path name not converted.</td>
</tr>
<tr>
<td align="left" valign="top">CPF24B4 E</td>
<td align="left" valign="top">Severe error while addressing parameter
list.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3BED E</td>
<td align="left" valign="top">Requested function cannot be performed at this
time.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3BEF E</td>
<td align="left" valign="top">C or POSIX locale specified in the environment
variable.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3BF1 E</td>
<td align="left" valign="top">Locale &amp;1 does not exist.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3BF2 E</td>
<td align="left" valign="top">Locale &amp;1 is not a valid locale.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3BF3 E</td>
<td align="left" valign="top">Locale not defined in environment variable.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF1 E</td>
<td align="left" valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF2 E</td>
<td align="left" valign="top">Error(s) occurred during running of &amp;1
API.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C19 E</td>
<td align="left" valign="top">Error occurred with receiver variable
specified.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C1E E</td>
<td align="left" valign="top">Required parameter &amp;1 omitted.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C21 E</td>
<td align="left" valign="top">Format name &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C24 E</td>
<td align="left" valign="top">Length of the receiver variable is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C36 E</td>
<td align="left" valign="top">Number of parameters, &amp;1, entered for this
API was not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C82 E</td>
<td align="left" valign="top">Key &amp;1 not valid for API &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C90 E</td>
<td align="left" valign="top">Literal value cannot be changed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF8100 E</td>
<td align="left" valign="top">All CPF81xx messages could be returned. xx is
from 01 to FF.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9872 E</td>
<td align="left" valign="top">Program or service program &amp;1 in library
&amp;2 ended. Reason code &amp;3.</td>
</tr>
</table>
<br>
<hr>
API introduced: V3R6
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"nls1.htm">National Language Support APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</center>
</body>
</html>