Babelfish 支援的定序 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Babelfish 支援的定序

當您使用 Babelfish 建立 Aurora PostgreSQL 資料庫叢集時,您可以為您的資料選擇定序。定序可指定排序順序,及以人類書寫語言產生文字或字元的位元模式。定序中包含規則,可用於比較一組所給定位元模式的資料。定序與當地語系化相關。不同的地區設定會影響字元對應、排序順序等。定序屬性會反映在各種定序的名稱中。如需有關這些屬性的詳細資訊,請參閱 Babelfish collation attributes table

Babelfish 將 SQL Server 定序映射至 Babelfish 提供的類似定序。Babelfish 預先定義支援文化差異性字串比較和排序順序的 Unicode 定序。Babelfish 也能夠將 SQL Server 資料庫中的定序轉化為最相符的 Babelfish 定序。針對不同語言和區域,已提供地區設定專用的定序。

某些定序指定對應於用戶端編碼的字碼頁。Babelfish 根據每個輸出資料欄的定序,自動將伺服器編碼轉化為用戶端編碼。

Babelfish 支援 Babelfish supported collations table 中所列的定序。Babelfish 將 SQL Server 定序映射至 Babelfish 提供的類似定序。

Babelfish 使用第 153.80 版 International Components for Unicode (ICU) 定序程式庫。如需 ICU 定序的詳細資訊,請參閱 ICU 文件中的定序。若要進一步了解 PostgreSQL 和定序,請參閱 PostgreSQL 文件中的定序支援

可控制定序和地區設定的資料庫叢集參數

以下參數會影響定序行為。

babelfishpg_tsql.default_locale

此參數指定該定序使用的預設地區設定。此參數用於與 Babelfish collation attributes table 中所列的屬性結合,以自訂特定語言和區域的定序。此參數的預設值為 en-US

預設地區設定會套用至所有以字母 "BBF" 開頭的 Babelfish 定序,也會套用至對應至 Babelfish 定序的所有 SQL Server 定序。在現有 Babelfish 資料庫叢集上變更此參數的設定,並不會影響現有定序的地區設定。如需定序清單,請參閱 Babelfish supported collations table

babelfishpg_tsql.server_collation_name

此參數會指定伺服器 (Aurora PostgreSQL 資料庫叢集執行個體) 和資料庫的預設定序。預設值為 sql_latin1_general_cp1_ci_asserver_collation_name 必須是 CI_AS 定序,因為在 T-SQL 中,伺服器定序決定如何比較識別符。

當您建立 Babelfish 資料庫叢集時,請從可選取清單中選擇 Collation name (定序名稱)。這些包括 Babelfish supported collations table 中所列的定序。建立 Babelfish 資料庫之後,請勿修改 server_collation_name

您在建立 Babelfish for Aurora PostgreSQL 資料庫叢集時所選擇的設定,會儲存在與這些參數的叢集相關聯的資料庫叢集參數群組中,並設定其定序行為。

確定性和非確定性定序與 Babelfish

Babelfish 支援確定性和非確定性定序:

  • 確定性定序會將位元組序列相同的字元評估為相等。這表示 xX 在確定性定序中不相等。確定性定序區分大小寫 (CS) 和區分重音 (AS)。

  • 非確定性定序不要求完全相符。非確定性定序將 xX 評估為相同。非確定性定序不區分大小寫 (CI) 也不區分重音 (AI)。

在下表中,您可以在使用非確定性定序找到 Babelfish 和 PostgreSQL 之間的一些行為差異。

Babelfish PostgreSQL

支援 CI_AS 定序的 LIKE 子句。

在非確定性定序上不支援 LIKE 子句。

在 AI 定序上不支援 LIKE 子句。

在非確定性定序上不支援模式比對操作。

如需 Babelfish 與 SQL Server 和 PostgreSQL 比較之下的其他限制和行為差異清單,請參閱 定序限制與行為差異

Babelfish 和 SQL Server 遵循定序命名慣例來描述定序屬性,如下表所示。

屬性 描述

AI

不區分重音。

AS

區分重音。

BIN2

BIN2 要求以字碼指標順序來儲存資料。Unicode 字碼指標順序與 UTF-8、UTF-16 和 UCS-2 編碼的字元順序相同。字碼指標順序是快速的確定性定序。

CIS

不區分大小寫。

CS

區分大小寫。

PREF

若要將小寫字母排在大寫字母前面,請使用 PREF 定序。如果比較時不區分大小寫,且沒有其他差別,則大寫字母排在小寫字母前置。ICU 程式庫支援 colCaseFirst=upper 的大寫偏好設定,但不適用於 CI_AS 定序。

PREF 只能套用至 CS_AS 確定性定序。

Babelfish 支援的定序

使用下列定序作為伺服器定序或物件定序。

定序 ID 備註

bbf_unicode_general_ci_as

支援不區分大小寫比較和 LIKE 運算子。

bbf_unicode_cp1_ci_as

也稱為 CP1252 的非確定性定序

bbf_unicode_CP1250_ci_as

在採用拉丁字母的中歐和東歐語言中用於表示文字的非確定性定序

bbf_unicode_CP1251_ci_as

採用斯拉夫字母的語言所用的非確定性定序

bbf_unicode_cp1253_ci_as

用於表示現代希臘文的非確定性定序

bbf_unicode_cp1254_ci_as

支援土耳其文的非確定性定序

bbf_unicode_cp1255_ci_as

支援希伯來文的非確定性定序

bbf_unicode_cp1256_ci_as

書寫採用阿拉伯字母的語言所用的非確定性定序

bbf_unicode_cp1257_ci_as

用於支援愛沙尼亞、拉脫維亞和立陶宛語言的非確定性定序

bbf_unicode_cp1258_ci_as

用於書寫越南文字元的非確定性定序

bbf_unicode_cp874_ci_as

用於書寫泰文字元的非確定性定序

sql_latin1_general_cp1250_ci_as

用於表示拉丁字元的非確定性單位元組字元編碼

sql_latin1_general_cp1251_ci_as

支援拉丁字元的非確定性定序

sql_latin1_general_cp1_ci_as

支援拉丁字元的非確定性定序

sql_latin1_general_cp1253_ci_as

支援拉丁字元的非確定性定序

sql_latin1_general_cp1254_ci_as

支援拉丁字元的非確定性定序

sql_latin1_general_cp1255_ci_as

支援拉丁字元的非確定性定序

sql_latin1_general_cp1256_ci_as

支援拉丁字元的非確定性定序

sql_latin1_general_cp1257_ci_as

支援拉丁字元的非確定性定序

sql_latin1_general_cp1258_ci_as

支援拉丁字元的非確定性定序

chinese_prc_ci_as

支援簡體中文的非確定性定序。

cyrillic_general_ci_as

支援斯拉夫文的非確定性定序。

finnish_swedish_ci_as

支援芬蘭文的非確定性定序。

french_ci_as

支援法文的非確定性定序。

japanese_ci_as

支援日文的非確定性定序。Babelfish 2.1.0 及更高版本支援。

korean_wansung_ci_as

支援韓文 (字典腔) 的非確定性定序。

latin1_general_ci_as

支援拉丁字元的非確定性定序。

modern_spanish_ci_as

支援現代西班牙文的非確定性定序。

polish_ci_as

支援波蘭文的非確定性定序。

thai_ci_as

支援泰文的非確定性定序。

traditional_spanish_ci_as

支援西班牙文 (傳統腔) 的非確定性定序。

turkish_ci_as

支援土耳其文的非確定性定序。

ukrainian_ci_as

支援烏克蘭文的非確定性定序。

vietnamese_ci_as

支援越南文的非確定性定序。

您可以使用下列定序作為物件定序。

方言 確定性選項 非確定性選項

Arabic

Arabic_CS_AS

Arabic_CI_AS、Arabic_CI_AI

Chinese

Chinese_CS_AS

Chinese_CI_AS、Chinese_CI_AI

Cyrillic_General

Cyrillic_General_CS_AS

Cyrillic_General_CI_AS、Cyrillic_General_CI_AI

Estonian

Estonian_CS_AS

Estonian_CI_AS、Estonian_CI_AI

Finnish_Swedish

Finnish_Swedish_CS_AS

Finnish_Swedish_CI_AS、Finnish_Swedish_CI_AI

French

French_CS_AS

French_CI_AS、French_CI_AI

Greek

Greek_CS_AS

Greek_CI_AS、Greek_CI_AI

Hebrew

Hebrew_CS_AS

Hebrew_CI_AS、Hebrew_CI_AI

日文 (Babelfish 2.1.0 及更新版本)

Japanese_CS_AS Japanese_CI_AI,Japanese_CI_AS

Korean_Wamsung

Korean_Wamsung_CS_AS

Korean_Wamsung_CI_AS、Korean_Wamsung_CI_AI

Modern_Spanish

Modern_Spanish_CS_AS

Modern_Spanish_CI_AS、Modern_Spanish_CI_AI

Mongolian

Mongolian_CS_AS

Mongolian_CI_AS、Mongolian_CI_AI

Polish

Polish_CS_AS

Polish_CI_AS、Polish_CI_AI

Thai

Thai_CS_AS

Thai_CI_AS、Thai_CI_AI

Traditional_Spanish

Traditional_Spanish_CS_AS

Traditional_Spanish_CI_AS、Traditional_Spanish_CI_AI

Turkish

Turkish_CS_AS

Turkish_CI_AS、Turkish_CI_AI

Ukranian

Ukranian_CS_AS

Ukranian_CI_AS、Ukranian_CI_AI

Vietnamese

Vietnamese_CS_AS

Vietnamese_CI_AS、Vietnamese_CI_AI

Babelfish 中的預設定序

早期,可定序資料類型的預設定序是 pg_catalog.default。資料類型和依賴這些資料類型的物件遵循區分大小寫的定序。此情況可能會影響定序不區分大小寫之資料集的 T-SQL 物件。從 Babelfish 2.3.0 開始,可定序資料類型 (TEXT 和 NTEXT 除外) 的預設定序 與 babelfishpg_tsql.server_collation_name 參數中的定序相同。當您升級至 Babelfish 2.3.0 時,系統會在建立資料庫叢集時自動挑選預設定序,這不會產生任何可見的影響。