用于 EBCDIC 和其他大型机迁移的 RDS for PostgreSQL 排序规则 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

用于 EBCDIC 和其他大型机迁移的 RDS for PostgreSQL 排序规则

RDS for PostgreSQL 版本 10 及更高版本包括 ICU 版本 60.2,该版本基于 Unicode 10.0,并包括来自 Unicode 通用区域设置数据存储库 CLDR 32 的排序规则。这些软件国际化库确保字符编码以一致的方式呈现,无论操作系统或平台如何。有关 Unicode CLDR-32 的更多信息,请参阅 Unicode CLDR 网站上的 CLDR 32 版本注释。您可以通过 ICU 技术委员会(ICU-TC)网站了解有关 Unicode (ICU) 国际化组件的更多信息。有关 ICU-60 的信息,请参阅下载 ICU 60

从版本 14.3 开始,RDS for PostgreSQL 还包括排序规则,这些排序规则有助于从基于 EBCDIC 的系统进行数据集成和转换。扩展二进制编码的十进制交换码或 EBCDIC 编码通常由大型机操作系统使用。这些 Amazon RDS 提供的排序规则的定义非常狭窄,仅对那些直接映射到 EBCDIC 代码页的 Unicode 字符进行排序。字符按 EBCDIC 代码点顺序排序,以便在转换后进行数据验证。这些排序规则不包括非规范化表单,也不包含不直接映射到源 EBCDIC 代码页上字符的 Unicode 字符。

EBCDIC 代码页和 Unicode 代码点之间的字符映射基于 IBM 发布的表。可以从 IBM 下载整套的压缩文件。RDS for PostgreSQL 使用这些映射以及 ICU 提供的工具来创建本节的各表中列出的排序规则。排序规则名称包括 ICU 要求的语言和国家/地区。但是,EBCDIC 代码页没有指定语言,一些 EBCDIC 代码页涵盖多个国家/地区。这意味着表中排序规则名称的语言和国家/地区部分是任意的,它们不需要与当前的区域设置相匹配。换句话说,代码页码是该表中排序规则名称的最重要部分。您可以在任何 RDS for PostgreSQL 数据库中使用以下各表列出的任何排序规则。

  • Unicode to EBCDIC collations table – 一些大型机数据迁移工具在内部使用 LATIN1 或 LATIN9 来编码和处理数据。此类工具使用往返操作方案来保持数据完整性并支持反向转换。使用 LATIN1 编码处理数据(这种编码不需要特殊处理)的工具可以使用此表中的排序规则。

  • Unicode to LATIN9 collations table – 您可以在任何 RDS for PostgreSQL 数据库中使用这些排序规则。

在下表中,您可以找到 RDS for PostgreSQL 中可用的排序规则,这些排序规则将 EBCDIC 代码页映射到 Unicode 代码点。我们建议您将此表中的排序规则用于需要根据 IBM 代码页的顺序进行排序的应用程序开发。

PostgreSQL 排序规则名称 代码页映射和排序顺序的描述

da-DK-cp277-x-icu

直接映射到 IBM EBCDIC 代码页 277(每个转换表)的 Unicode 字符按 IBM CP 277 代码点顺序排序

de-DE-cp273-x-icu

直接映射到 IBM EBCDIC 代码页 273(每个转换表)的 Unicode 字符按 IBM CP 273 代码点顺序排序

en-GB-cp285-x-icu

直接映射到 IBM EBCDIC 代码页 285(每个转换表)的 Unicode 字符按 IBM CP 285 代码点顺序排序

en-US-cp037-x-icu

直接映射到 IBM EBCDIC 代码页 037(每个转换表)的 Unicode 字符按 IBM CP 37 代码点顺序排序

es-ES-cp284-x-icu

直接映射到 IBM EBCDIC 代码页 284(每个转换表)的 Unicode 字符按 IBM CP 284 代码点顺序排序

fi-FI-cp278-x-icu

直接映射到 IBM EBCDIC 代码页 278(每个转换表)的 Unicode 字符按 IBM CP 278 代码点顺序排序

fr-FR-cp297-x-icu

直接映射到 IBM EBCDIC 代码页 297(每个转换表)的 Unicode 字符按 IBM CP 297 代码点顺序排序

it-IT-cp280-x-icu

直接映射到 IBM EBCDIC 代码页 280(每个转换表)的 Unicode 字符按 IBM CP 280 代码点顺序排序

nl-BE-cp500-x-icu

直接映射到 IBM EBCDIC 代码页 500(每个转换表)的 Unicode 字符按 IBM CP 500 代码点顺序排序

Amazon RDS 提供了一组额外的排序规则,这些排序规则使用 IBM 发布的表,按源数据的 EBCDIC 代码页的原始代码点顺序,对映射到 LATIN9 字符的 Unicode 代码点进行排序。

PostgreSQL 排序规则名称 代码页映射和排序顺序的描述

da-DK-cp1142m-x-icu

映射到最初从 IBM EBCDIC 代码页 1142(每个转换表)转换而来的 LATIN9 字符的 Unicode 字符按 IBM CP 1142 代码点顺序排序

de-DE-cp1141m-x-icu

映射到最初从 IBM EBCDIC 代码页 1141(每个转换表)转换而来的 LATIN9 字符的 Unicode 字符按 IBM CP 1141 代码点顺序排序

en-GB-cp1146m-x-icu

映射到最初从 IBM EBCDIC 代码页 1146(每个转换表)转换而来的 LATIN9 字符的 Unicode 字符按 IBM CP 1146 代码点顺序排序

en-US-cp1140m-x-icu

映射到最初从 IBM EBCDIC 代码页 1140(每个转换表)转换而来的 LATIN9 字符的 Unicode 字符按 IBM CP 1140 代码点顺序排序

es-ES-cp1145m-x-icu

映射到最初从 IBM EBCDIC 代码页 1145(每个转换表)转换而来的 LATIN9 字符的 Unicode 字符按 IBM CP 1145 代码点顺序排序

fi-FI-cp1143m-x-icu

映射到最初从 IBM EBCDIC 代码页 1143(每个转换表)转换而来的 LATIN9 字符的 Unicode 字符按 IBM CP 1143 代码点顺序排序

fr-FR-cp1147m-x-icu

映射到最初从 IBM EBCDIC 代码页 1147(每个转换表)转换而来的 LATIN9 字符的 Unicode 字符按 IBM CP 1147 代码点顺序排序

it-IT-cp1144m-x-icu

映射到最初从 IBM EBCDIC 代码页 1144(每个转换表)转换而来的 LATIN9 字符的 Unicode 字符按 IBM CP 1144 代码点顺序排序

nl-BE-cp1148m-x-icu

映射到最初从 IBM EBCDIC 代码页 1148(每个转换表)转换而来的 LATIN9 字符的 Unicode 字符按 IBM CP 1148 代码点顺序排序

在下文中,您可以找到使用 RDS for PostgreSQL 排序规则的示例。

db1=> SELECT pg_import_system_collations('pg_catalog'); pg_import_system_collations ----------------------------- 36 db1=> SELECT '¤' < 'a' col1; col1 ------ t db1=> SELECT '¤' < 'a' COLLATE "da-DK-cp277-x-icu" col1; col1 ------ f

我们建议您将 Unicode to EBCDIC collations tableUnicode to LATIN9 collations table中的排序规则用于需要根据 IBM 代码页的顺序进行排序的应用程序开发。以下排序规则(后缀为字母“b”)在 pg_collation 中也可见,但供 Amazon 中的大型机数据集成和迁移工具使用,这些工具将代码页映射到特定的代码点偏移,并要求在排序规则中进行特殊处理。换句话说,不建议使用以下排序规则。

  • da-DK-277b-x-icu

  • da-DK-1142b-x-icu

  • de-DE-cp273b-x-icu

  • de-DE-cp1141b-x-icu

  • en-GB-cp1146b-x-icu

  • en-GB-cp285b-x-icu

  • en-US-cp037b-x-icu

  • en-US-cp1140b-x-icu

  • es-ES-cp1145b-x-icu

  • es-ES-cp284b-x-icu

  • fi-FI-cp1143b-x-icu

  • fr-FR-cp1147b-x-icu

  • fr-FR-cp297b-x-icu

  • it-IT-cp1144b-x-icu

  • it-IT-cp280b-x-icu

  • nl-BE-cp1148b-x-icu

  • nl-BE-cp500b-x-icu

要了解有关将应用程序从大型机环境迁移到 Amazon 的更多信息,请参阅什么是 Amazon Mainframe Modernization?

有关在 PostgreSQL 中管理排序规则的更多信息,请参阅 PostgreSQL 文档中的排序规则支持