数据库管理
数据库管理支持为系统上的数据库文件提供缺省编码字符集标识 (CCSID) 值。 为所有数据库文件分配 CCSID。 在文件创建时,通过 DDS , SQL 或 IDDU 显式指定 CCSID ,或隐式指定作业缺省 CCSID (DFTCCSID)。
支持 CCSID 的数据库文件
IBM® 系统文件和许可程序数据库文件是使用每个本地语言版本的所选 CCSID 创建的。 只有客户文件才会自动分配创建该文件的作业的 CCSID。 可以使用 "显示文件描述" (DSPFD) 命令来查看文件的 CCSID。
程序描述文件被分配 CCSID 65535。 如果未在 CRTPF 或 CRTSRCPF 命令上显式指定 CCSID ,那么数据库源文件在文件创建时缺省为作业缺省 CCSID。
如果在多个物理文件上定义了数据库逻辑文件,那么将在字段级别为其分配 CCSID ,并假定该物理文件的 CCSID 值。 不能显式地为逻辑文件分配 CCSID 值。
数据库字段和对 CCSID 的支持
除数字数据库字段外, CCSID 支持数据库字段。 可以使用 "显示文件字段描述" (DSPFFD) 命令来查看文件中字段的 CCSID。
为十六进制字段分配 CCSID 65535。
如果在创建文件时未通过 DDS , SQL 或 IDDU 显式指定 CCSID ,那么会将隐式 CCSID 值分配给以下字段:
- 物理文件字符
- 允许DBCS
- 仅DBCS
- 或者是DBCS
- 图形
隐式分配的 CCSID 是作业缺省 CCSID 或与作业缺省 CCSID 相关联的 CCSID。
- 为字符字段分配与作业缺省 CCSID 相关联的单字节字符集 (SBCS) CCSID。
- 为 DBCS-open , DBCS-only 和 DBCS 字段指定了混合字节 CCSID。
- 为图形字段分配了与作业缺省 CCSID 相关联的双字节字符集 (DBCS) CCSID。
例如,如果作业缺省 CCSID 是 5026 (这是标识混合数据的 CCSID) ,那么将为 SBCS 字符字段分配与 5026 相关联的 SBCS CCSID。 因此,该字段的 CCSID 为 290。 如果没有必需字符集类型的 CCSID ,那么将使用 CCSID 65535。
根据数据库逻辑文件字段的数据类型和底层物理文件字段的数据类型,为其分配 CCSID 值。
针对 CCSID 的数据库管理和转换支持
数据库管理支持使用文件 CCSID 和作业 CCSID 转换从数据库文件读取或写入数据库文件的非图形字符数据。
- 如果正在从数据库文件读取数据,并且该文件的 CCSID 与作业 CCSID 相同,那么不执行任何转换。
- 如果正在从数据库文件中读取数据,并且该文件的 CCSID 与作业的 CCSID 不同,那么会将数据转换为作业的 CCSID。
- 如果正在将数据写入数据库文件,并且该文件的 CCSID 与作业 CCSID 相同,那么不会执行任何转换。
- 如果正在将数据写入数据库文件,并且该文件的 CCSID 和作业 CCSID 不同,那么将转换数据以与该文件的 CCSID 相匹配。
如果作业的 CCSID 或数据库文件的 CCSID 等于 65535 ,那么不执行转换。