Db2 for z/OS 如何使用Unicode

即使您没有对数据进行Unicode编码,您也应该知道, Db2 在许多内部流程中使用了Unicode。 这种使用可能会影响您的应用程序、查询、存储和性能。

Db2 以下列方式使用Unicode:

申请准备和处理:

  • 在受支持的 Db2 版本中生成的DBRM以Unicode UTF-8 格式存储。
  • Db2 解析Unicode 中的DBRM,而不管生成DBRM的原始 版本是什么。 UTF-8 Db2
  • Db2 在预编译器处理之前,将应用程序源代码转换为Unicode。 UTF-8 预编译器随后解析 UTF-8 中的源代码。 SQL语句和文字被视为应用程序源的一部分,在 UTF-8 中也会被解析。 SQL语句文本如果尚未在 UTF-8 中,则将其转换为 UTF-8。

Db2 对象和数据:

  • 大多数 Db2 目录数据以 UTF-8 编码。 (目录中Unicode表格中不是FOR BIT DATA列的字符串列中的数据位于 UTF-8。) 当您查询目录时,请注意许多字符串列都是VARCHAR(128)。 这种数据类型和长度使您能够轻松移植在其他操作系统上运行的应用程序。
  • 计划和套餐的名称以Unicode编码存储在 UTF-8 中。
  • 一些特殊寄存器的值以Unicode UTF-8 形式存储。
  • EXPLAIN表中的所有数据均采用Unicode编码 UTF-8。
  • SYSIBM.SYSDUMMYU 编码为Unicode。 UTF-8 有关 SYSIBM.SYSDUMMY x 表的更多信息,请参阅 SYSDUMMYx 表

授权:

  • Db2 授权流程适用于Unicode数据。 当使用某些外部授权流程时,例如 RACF® , Db2 需要将数据转换为EBCDIC。

痕迹:

  • 您可以指定 Db2 以Unicode格式返回跟踪数据。

SQL语句处理:

  • 如果您同时使用Unicode和非Unicode表格, Db2 将在Unicode中执行一些操作。 例如,如果您比较Unicode表和EBCDIC表的列, Db2 将以Unicode进行比较。

实用控制语句:

  • 实用程序可以处理用Unicode UTF-8 编写的控制语句。

DRDA:

  • 远程客户端系统可以发送和接收DRDA命令和回复消息,并带有Unicode字符类型数据( UTF-8 )。