DBCS 字段并置
合并字段时,数据类型可以更改 (生成的数据类型由系统自动确定)。 双字节字符集 (DBCS) 字段并置遵循以下规则。
- 操作系统根据要并置的字段的数据类型来分配数据类型。 当 DBCS 字段包含在并置中时,一般规则为:
- 如果并置包含一个或多个十六进制 (H) 字段,那么生成的数据类型为十六进制 (H)。
- 如果并置中的所有字段都是仅 DBCS (J) ,那么生成的数据类型是仅 DBCS (J)。
- 如果并置包含一个或多个 DBCS (O , E , J) 字段,但不包含十六进制 (H) 字段,那么生成的数据类型为 DBCS open (O)。
- 如果并置包含两个或多个 DBCS 开放式 (O) 字段,那么生成的数据类型是可变长度的 DBCS 开放式 (O) 字段。
- 如果并置包含任何数据类型的一个或多个变长字段,那么生成的数据类型为变长。
- DBCS 图形 (G) 字段只能与另一个 DBCS 图形字段并置。 生成的数据类型为 DBCS 图形 (G)。
- 可以将 UCS2-graphic (G) 字段并置到另一个 UCS2-graphic 字段, UTF-8 字符字段或 UTF-16 图形字段。 如果其中一个操作数为 UTF-16,那么生成的数据类型为 UTF-16 ,如果其中一个操作数为 UTF-8 且没有任何操作数为 UTF-16,那么生成的数据类型为 UTF-8 ,否则生成的数据类型为 UCS-2。
- UTF-8 字符 (A) 字段可以与另一个 UTF-8 字段, UTF-16 字段或 UCS-2 字段并置。 如果其中一个操作数为 UTF-16,那么生成的数据类型为 UTF-16 ,如果其中一个操作数为 UTF-8 且没有任何操作数为 UTF-16,那么生成的数据类型为 UTF-8 ,否则生成的数据类型为 UCS-2。
- UTF-16 图形 (G) 字段可以与另一个 UTF-16 字段, UTF-8 字段或 UCS-2 字段并置。 如果其中一个操作数为 UTF-16,那么生成的数据类型为 UTF-16 ,如果其中一个操作数为 UTF-8 且没有任何操作数为 UTF-16,那么生成的数据类型为 UTF-8 ,否则生成的数据类型为 UCS-2。
- 并置字段的最大长度根据并置字段的数据类型和要并置的字段的长度而有所不同。 如果并置字段是分区十进制 (S) ,那么其总长度不能超过 31 个字节。 如果并置字段是字符 (A) , DBCS (O) 或仅 DBCS (J) ,那么其总长度不能超过 32,766 字节 (如果字段为可变长度,则为 32,740 字节)。
DBCS 图形 (G) 字段的长度表示为双字节 字符数 (实际长度是字符数的两倍); 因此,并置字段的总长度不能超过 16,383 个字符 (如果字段为可变长度,则为 16,370 个字符)。
- 在连接逻辑文件中,要并置的字段必须来自同一物理文件。 CONCAT 关键字上指定的第一个字段标识使用的物理文件。 因此,第一个字段必须在逻辑文件所基于的物理文件之间唯一,或者您还必须指定 JREF 关键字以指定要使用的物理文件。
- 使用并置字段必须是 I (仅输入)。
- 不能在已分配数据类型为 O 或 J 的并置字段上指定 REFSHIFT。
注:
- 当并置括在括号内的 DBCS 字段时,将除去一个字段末尾的移入和下一个字段开头的移出。 如果并置包含一个或多个十六进制字段,那么仅对第一个十六进制字段之前的 DBCS 字段消除移入和移出对。
- 包含 DBCS 字段的并置字段必须是仅输入字段。
- 当使用 "打开查询文件" (OPNQRYF) 命令时,并置 DBCS 字段的结果数据类型可能不同。