Contents Index First-byte collation orderings for multibyte character sets Understanding locales

ASA Database Administration Guide
  International Languages and Character Sets
    Understanding character sets in software

International aspects of case sensitivity


Adaptive Server Anywhere is always case preserving and case insensitive for identifiers, such as table names and column names. This means that the names are stored in the case in which they are created, but any access to the identifiers is done in a case insensitive manner.

For example, the names of the system tables are held in upper case (SYSDOMAIN, SYSTABLE, and so on), but access is case insensitive, so that the two following statements are equivalent:

SELECT *
FROM systable

SELECT *
FROM SYSTABLE

The equivalence of upper and lower case characters is enforced in the collation. There are some collations where particular care may be needed when assuming case insensitivity of identifiers.

Turkish 

Users with Turkish databases (1254TRK, 920TRK, 857TRK, etc.) may see unexpected errors. These errors are usually related to a database object whose name contains the letter I or i. In the Turkish language and collations, the letters I and i are not equivalent characters. When specifying the name of an object, the proper letters must be used. A simple way to avoid such problems is to specify object names in their correct case.

For example,

SELECT * 
FROM SYSCOLLATION

would be accepted, however,

SELECT * 
FROM syscollation

would yield the error, Table 'syscollation' not found.

Example 

In the Turkish 857TRK collation, the lower case i does not have the character I as its upper case equivalent. Therefore, despite the case insensitivity of identifiers, the following two statements are not equivalent in this collation:

SELECT *
FROM sysdomain

SELECT *
FROM SYSDOMAIN

Contents Index First-byte collation orderings for multibyte character sets Understanding locales