HPlogo ALLBASE/SQL Reference Manual: HP 9000 Computer Systems > Chapter 7 Data Types

Native Language Data

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

Character data in the DBEnvironment can be represented in the native language specified by the DBEnvironment language. When native language character columns are created, they follow the same rules as CHAR and VARCHAR columns. For character columns, size is defined in bytes. Thus a column defined as CHAR (20) could hold 20 characters in ASCII or 10 characters in Japanese Kanji.

Numeric data must be in ASCII representation.

Pattern matching is in terms of conceptual characters rather than bytes. This is necessary for languages in which there are both one-byte and two-byte characters frequently mixed in the same string. An example is Japanese, in which the Kanji and Hiragana characters occupy 16 bits each, whereas the Katakana characters use only 8 bits. Conceptual character matching is also necessary to establish a collating sequence that includes the one-byte ASCII character set as a subset of a two-byte character set such as Chinese.

Truncation is done on a character basis. For example, imagine a column defined as CHAR (20). If a string contains 11 Kanji characters, or 22 bytes, the last character is truncated if you try to insert it into the column. In a case where a string contains both Kanji and Katakana characters and is 21 bytes long, the truncation depends on the size of the last character. If it is a 2-byte Kanji character, the data is truncated to 19 bytes; if it is a 1-byte Katakana character, the data is truncated to 20 bytes.

An implicit type conversion occurs when an n-computer string is compared to a native language CHAR or VARCHAR type. The shorter string is padded with ASCII blanks before the comparison is done.

When a case insensitive ASCII expression is compared to a case insensitive NLS expression, the two expressions are compared using the NLS collation rules. The case insensitive NLS comparison is done by using the NLSCANMOVE and NLCOLLATE intrinsics. The same ASCII characters in upper and lower case are equivalent. The same accent characters (extended characters) in upper and lower case are also equivalent. However, an accent character may not be the same as its ASCII equivalent, depending on the specific language collation table.

Feedback to webmaster