本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 文件中的定序
可控制定序和地區設定的資料庫叢集參數
以下參數會影響定序行為。
- 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_as
。server_collation_name
必須是CI_AS
定序,因為在 T-SQL 中,伺服器定序決定如何比較識別符。當您建立 Babelfish 資料庫叢集時,請從可選取清單中選擇 Collation name (定序名稱)。這些包括 Babelfish supported collations table 中所列的定序。建立 Babelfish 資料庫之後,請勿修改
server_collation_name
。
您在建立 Babelfish for Aurora PostgreSQL 資料庫叢集時所選擇的設定,會儲存在與這些參數的叢集相關聯的資料庫叢集參數群組中,並設定其定序行為。
確定性和非確定性定序與 Babelfish
Babelfish 支援確定性和非確定性定序:
確定性定序會將位元組序列相同的字元評估為相等。這表示
x
和X
在確定性定序中不相等。確定性定序區分大小寫 (CS) 和區分重音 (AS)。非確定性定序不要求完全相符。非確定性定序將
x
和X
評估為相同。非確定性定序不區分大小寫 (CI) 也不區分重音 (AI)。
在下表中,您可以在使用非確定性定序找到 Babelfish 和 PostgreSQL 之間的一些行為差異。
Babelfish | PostgreSQL |
---|---|
支援 CI_AS 定序的 LIKE 子句。 |
在非確定性定序上不支援 LIKE 子句。 |
在 AI 定序上不支援 |
|
在非確定性定序上不支援模式比對操作。 |
如需 Babelfish 與 SQL Server 和 PostgreSQL 比較之下的其他限制和行為差異清單,請參閱 定序限制與行為差異。
Babelfish 和 SQL Server 遵循定序命名慣例來描述定序屬性,如下表所示。
屬性 | 描述 |
---|---|
AI |
不區分重音。 |
AS |
區分重音。 |
BIN2 |
BIN2 要求以字碼指標順序來儲存資料。Unicode 字碼指標順序與 UTF-8、UTF-16 和 UCS-2 編碼的字元順序相同。字碼指標順序是快速的確定性定序。 |
CIS |
不區分大小寫。 |
CS |
區分大小寫。 |
PREF |
若要將小寫字母排在大寫字母前面,請使用 PREF 定序。如果比較時不區分大小寫,且沒有其他差別,則大寫字母排在小寫字母前置。ICU 程式庫支援 PREF 只能套用至 |
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 時,系統會在建立資料庫叢集時自動挑選預設定序,這不會產生任何可見的影響。