Re: collating sequence

Re: collating sequence

 

  

hi,

Collating Sequence Specified when Database Is Created
The collating sequence for a database is specified at database creation
time. Once the database has been created, the collating sequence cannot be
changed.

The CREATE DATABASE API accepts a data structure called the Database
Descriptor Block (SQLEDBDESC). You can define your own collating sequence
within this structure.

Note:
You can only define your own collating sequence for a single-byte
database.
To specify a collating sequence for a database:

a.. Pass the desired SQLEDBDESC structure, or
b.. Pass a NULL pointer. The collating sequence of the operating system
(based on current country/region code and code page) is used. This is the
same as specifying SQLDBCSS equal to SQL_CS_SYSTEM (0).
The SQLEDBDESC structure contains:

SQLDBCSS
A 4-byte integer indicating the source of the database collating sequence.
Valid values are:
SQL_CS_SYSTEM
The collating sequence of the operating system (based on current
country/region code and code page) is used.
SQL_CS_SYSTEM_NLSCHAR
Collating sequence from user using the NLS version of compare routines
for character types
SQL_CS_IDENTITY_16BIT
A Unicode database can be created with the SQL_CS_IDENTITY_16BIT
collation option. SQL_CS_DENTITY_16BIT differs from the default SQL_CS_NONE
collation option in that the CHAR, VARCHAR, LONG VARCHAR, and CLOB data in
the Unicode database will be collated using the CESU-8 binary order instead
of the UTF-8 binary order. CESU-8 is Compatibility Encoding Scheme for
UTF-16: 8-Bit, and as of this writing, its specification is contained in the
Draft Unicode Technical Report #26 available at the Unicode Technical
Consortium web site (www.unicode.org). CESU-8 is binary identical to UTF-8
except for the Unicode supplementary characters, that is, those characters
that are defined outside the 16-bit Basic Multilingual Plane (BMP or Plane
0). In UTF-8 encoding, a supplementary character is represented by one
4-byte sequence, but the same character in CESU-8 requires two 3-byte
sequences. In a Unicode database, CHAR, VARCHAR, LONG VARCHAR, and CLOB data
are stored in UTF-8, and GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC, and DBCLOB
data are stored in UCS-2. For SQL_CS_NONE collation, non-supplementary
characters in UTF-8 and UCS-2 have identical binary collation, but
supplementary characters in UTF-8 collate differently from the same
characters in UCS-2. SQL_CS_IDENTITY_16BIT ensures all characters,
supplementary and non-supplementary, in a DB2(R) Unicode databases have the
same binary collation.
SQL_CS_USER
The collating sequence is specified by the value in the SQLDBUDC field.
SQL_CS_NONE
The collating sequence is the identity sequence. Strings are compared
byte for byte, starting with the first byte, using a simple code point
comparison.
Note:
These constants are defined in the SQLENV include file.
SQLDBUDC
A 256-byte field. The nth byte contains the sort weight of the nth
character in the code page of the database. If SQLDBCSS is not equal to
SQL_CS_USER, this field is ignored.
Related reference

a.. sqlecrea - Create Database
Regards
thiru

----- Original Message -----
From: "D OLLONE Clara "
<db2udbdba-ezmlmshield-x59815415.[Email address protected]
To: "LazyDBA Discussion" <[Email address protected]
Sent: Friday, June 25, 2004 5:39 PM
Subject: collating sequence


> Hi everybody,
>
> What is 'collating sequence' in database ?
>
>
> ---------------------------------------------------------------------
> PLEASE CLICK REPLY-ALL TO SEND A REPLY TO EVERYONE
> website: http://www.LazyDBA.com
> To unsubscribe: http://www.lazydba.com/unsubscribe.html
> For additional commands, e-mail: db2udbdba-[Email address protected]
>


DB2 & UDB email list listserv db2-l LazyDBA home page