本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 Babelfish for Aurora PostgreSQL 中的定序
當您使用 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 子句。 |
|
僅支援來自 Babelfish 4.2.0 版中下列 AI 定序的 LIKE 子句:
|
在非確定性定序上不支援 LIKE 子句。 |
如需 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 中資料庫層級支援的定序
在 Babelfish 中資料庫層級支援下列定序:
bbf_unicode_bin2
bbf_unicode_cp1_ci_ai
bbf_unicode_cp1_ci_as
bbf_unicode_cp1250_ci_ai
bbf_unicode_cp1250_ci_as
bbf_unicode_cp1257_ci_ai
bbf_unicode_cp1257_ci_as
estonian_ci_ai
estonian_ci_as
finnish_swedish_ci_ai
finnish_swedish_ci_as
french_ci_ai
french_ci_as
latin1_general_bin2
latin1_general_ci_ai
latin1_general_ci_as
latin1_general_90_bin2
latin1_general_100_bin2
latin1_general_140_bin2
modern_spanish_ci_ai
modern_spanish_ci_as
polish_ci_ai
polish_ci_as
sql_latin1_general_cp1_ci_ai
sql_latin1_general_cp1_ci_as
sql_latin1_general_cp1250_ci_as
sql_latin1_general_cp1251_ci_as
sql_latin1_general_cp1257_ci_as
traditional_spanish_ci_ai
traditional_spanish_ci_as
注意
若要在資料庫層級使用不同的定序,請確定其符合伺服器層級定序。如需詳細資訊,請參閱Babelfish 中的伺服器和物件定序
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 |
|
阿拉伯字母 |
BBF_Unicode_CP1256_CS_AS BBF_Unicode_Pref_CP1256_CS_AS |
BBF_Unicode_CP1256_CI_AI BBF_Unicode_CP1256_CS_AI |
|
二進位 |
latin1_general_bin2 BBF_Unicode_BIN2 |
– |
|
使用拉丁字母的中歐和東歐語言 |
BBF_Unicode_CP1250_CS_AS BBF_Unicode_Pref_CP1250_CS_AS |
BBF_Unicode_CP1250_CI_AI BBF_Unicode_CP1250_CS_AI |
|
中文 |
Chinese_PRC_CS_AS |
Chinese_PRC_CI_AS Chinese_PRC_CI_AI |
|
Cyrillic_General |
Cyrillic_General_CS_AS |
Cyrillic_General_CI_AS Cyrillic_General_CI_AI |
|
斯拉夫字母 |
BBF_Unicode_CP1251_CS_AS BBF_Unicode_Pref_CP1251_CS_AS |
BBF_Unicode_CP1251_CI_AI BBF_Unicode_CP1251_CS_AI |
|
Estonian |
Estonian_CS_AS |
Estonian_CI_AS Estonian_CI_AI |
|
愛沙尼亞文、拉脫維亞文和立陶宛文 |
BBF_Unicode_CP1257_CS_AS BBF_Unicode_Pref_CP1257_CS_AS |
BBF_Unicode_CP1257_CI_AI BBF_Unicode_CP1257_CS_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 |
BBF_Unicode_CP1255_CS_AS BBF_Unicode_Pref_CP1255_CS_AS Hebrew_CS_AS |
BBF_Unicode_CP1255_CI_AI BBF_Unicode_CP1255_CS_AI 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 |
|
程式碼頁面 CP1252 的拉丁字元 |
latin1_general_cs_as BBF_Unicode_General_CS_AS BBF_Unicode_General_Pref_CS_AS BBF_Unicode_Pref_CP1_CS_AS BBF_Unicode_CP1_CS_AS |
latin1_general_ci_as latin1_general_ci_ai latin1_general_cs_ai BBF_Unicode_General_CI_AI BBF_Unicode_General_CS_AI BBF_Unicode_CP1_CI_AI BBF_Unicode_CP1_CS_AI |
|
現代希臘文 |
BBF_Unicode_CP1253_CS_AS BBF_Unicode_Pref_CP1253_CS_AS |
BBF_Unicode_CP1253_CI_AI BBF_Unicode_CP1253_CS_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 |
BBF_Unicode_CP874_CS_AS BBF_Unicode_Pref_CP874_CS_AS Thai_CS_AS |
BBF_Unicode_CP874_CI_AI BBF_Unicode_CP874_CS_AI Thai_CI_AS、Thai_CI_AI |
|
Traditional_Spanish |
Traditional_Spanish_CS_AS |
Traditional_Spanish_CI_AS Traditional_Spanish_CI_AI |
|
Turkish |
BBF_Unicode_CP1254_CS_AS BBF_Unicode_Pref_CP1254_CS_AS Turkish_CS_AS |
BBF_Unicode_CP1254_CI_AI BBF_Unicode_CP1254_CS_AI Turkish_CI_AS、Turkish_CI_AI |
|
Ukranian |
Ukranian_CS_AS |
Ukranian_CI_AS Ukranian_CI_AI |
|
越南文 |
BBF_Unicode_CP1258_CS_AS BBF_Unicode_Pref_CP1258_CS_AS Vietnamese_CS_AS |
BBF_Unicode_CP1258_CI_AI BBF_Unicode_CP1258_CS_AI 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 時,系統會在建立資料庫叢集時自動挑選預設定序,這不會產生任何可見的影響。