图形字符串
图形字符串是由双字节字符组成的序列。
字符串的长度是序列中的字符数。 与字符串一样,图形字符串也可以为空。 空字符串不应与空值混淆。
固定长度的图形字符串
当定义了固定长度的图形字符串、不同类型、列和变量时,长度属性被指定,且所有值具有相同的长度。 对于固定长度的图形字符串, 长度属性必须在1-127(含127)的范围内。 固定长度的图形字符串列也可以称为图形列。
长度不同的图形字符串
不同长度的图形字符串类型包括VARGRAPHIC和双字节字符大对象(DBCLOB )。 DBCLOB是一种LOB。 DBCLOB列可用于存储大量双字节字符数据,例如使用单一双字节字符集编写的文档。
当定义了不同长度的图形字符串、不同类型、列和变量时,会指定最大长度,该长度将成为长度属性。 实际数值可能更小。 对于长度可变的图形字符串, 长度属性必须在1-16352的范围内。
对于长度可变的图形字符串列,长度属性的最大值由与表关联的记录大小决定,如CREATE TABLE语句描述中的最大记录大小。 对于DBCLOB字符串, 长度属性必须在1-1073741823(含)的范围内。 在 UTF-16 中,虽然补充字符使用两个2字节代码点,但补充字符仍被视为双字节字符。 有关DBCLOB的更多信息,请参阅大型对象(LOB )。
图形字符串变量
Fortran 中不能定义具有图形字符串类型的变量。 此外,图形字符串变量必须遵循以下规则:
- 除REXX和Java™外,所有主机语言都可以定义固定长度的图形字符串宿主变量。在C语言中,固定长度的图形字符串变量长度限制为1。
- 除DBCLOB(不能在REXX中使用)外,所有主机语言都可以定义长度可变的图形字符串变量。
图形字符串编码方案
每个图形字符串可以进一步定义为双字节数据或Unicode数据。
- 双字节数据
- 数据中每个字符都由双字节字符集(DBCS)中的字符表示,不包括移出或移入字符。 每个双字节图形字符串都有一个相关的ASCII或EBCDIC CCSID。
- Unicode 数据
- 数据中包含由两个字节表示的字符,但补充字符除外,补充字符每个字符占用两个字节。 每个Unicode图形字符串都使用 UTF-16 编码。 UTF-16 的CCSID为1200。
内置函数中的字符串单元
使用图形字符串时,您可以为某些内置函数和CAST规范指定操作所在的字符串单元。 字符串单元决定操作的长度。
有关字符串单元的更多信息,请参阅字符串单元规格。