本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 Babelfish for Aurora Postgre 中的定序SQL
當您使用 Babelfish 建立 Aurora PostgreSQL 資料庫叢集時,您可以選擇資料的定序。定序可指定排序順序,及以人類書寫語言產生文字或字元的位元模式。定序中包含規則,可用於比較一組所給定位元模式的資料。定序與當地語系化相關。不同的地區設定會影響字元對應、排序順序等。定序屬性會反映在各種定序的名稱中。如需有關這些屬性的詳細資訊,請參閱 Babelfish collation attributes table。
Babelfish 會將SQL伺服器定序映射至 Babelfish 提供的類似定序。Babelfish 預先定義支援文化差異性字串比較和排序順序的 Unicode 定序。Babelfish 也提供將SQL伺服器資料庫中的定序轉譯為最接近相符 Babelfish 定序的方法。針對不同語言和區域,已提供地區設定專用的定序。
某些定序指定對應於用戶端編碼的字碼頁。Babelfish 根據每個輸出資料欄的定序,自動將伺服器編碼轉化為用戶端編碼。
Babelfish 支援 Babelfish supported collations table 中所列的定序。Babelfish 會將SQL伺服器定序映射至 Babelfish 提供的類似定序。
Babelfish 使用國際元件 Unicode (ICU) 定序程式庫的 153.80 版。如需ICU定序的詳細資訊,請參閱 ICU 文件中的定序
主題
可控制定序和地區設定的資料庫叢集參數
以下參數會影響定序行為。
- babelfishpg_tsql.default_locale
此參數指定該定序使用的預設地區設定。此參數用於與 Babelfish collation attributes table 中所列的屬性結合,以自訂特定語言和區域的定序。此參數的預設值為
en-US
。預設地區設定會套用至以 "BBF" 開頭的所有 Babelfish 定序名稱,以及對應至 Babelfish 定序的所有SQL伺服器定序。在現有 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
。
當您為 Aurora PostgreSQL 資料庫叢集建立 Babelfish 時,您選擇的設定會存放在與叢集相關聯的資料庫叢集參數群組中,以用於這些參數並設定其定序行為。
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伺服器和 Postgre 的其他限制和行為差異清單SQL,請參閱定序限制與行為差異。
Babelfish 和 SQL Server 遵循描述定序屬性的定序命名慣例,如下表所示。
屬性 | 描述 |
---|---|
AI |
不區分重音。 |
AS |
區分重音。 |
BIN2 |
BIN2 會請求依程式碼點順序排序資料。-8、UTF-UTF16 和 UCS-2 編碼的 Unicode 程式碼點順序是相同的字元順序。字碼指標順序是快速的確定性定序。 |
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
傳統_西班牙文_ci_ai
traditional_spanish_ci_as
注意
若要在資料庫層級使用不同的定序,請確定其符合伺服器層級定序。如需詳細資訊,請參閱 Babelfish 中的伺服器和物件定序
Babelfish 中的伺服器和物件定序
使用下列定序作為伺服器定序或物件定序。
定序 ID | 備註 |
---|---|
bbf_unicode_general_ci_as |
支援不區分大小寫的比較和LIKE運算子。 |
bbf_unicode_cp1_ci_as |
非確定性定序 |
bbf_unicode_CP1250_ci_as |
在採用拉丁字母的中歐和東歐語言中用於表示文字的非確定性定序 |
bbf_unicodeCP1251_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 |
支援中文 () 的非確定性定序PRC。 |
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 阿拉伯文_CI_AI |
阿拉伯文指令碼 |
BBF_Unicode_CP1256_CS_AS BBF_Unicode_PrefCP1256_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 |
中文PRC_CI_AS 中文PRC_CI_AI |
Cyrillic_General |
Cyrillic_General_CS_AS |
Cyrillic_General_CI_AS Cyrillic_General_CI_AI |
西里爾文指令碼 |
BBF_Unicode_CP1251_CS_AS BBF_Unicode_PrefCP1251_CS_AS |
BBF_Unicode_CP1251_CI_AI BBF_Unicode_CP1251_CS_AI |
Estonian |
Estonian_CS_AS |
愛沙尼亞文_CI_AS 愛沙尼亞文_CI_AI |
愛沙尼亞文、拉脫維亞文和立陶宛文 |
BBF_Unicode_CP1257_CS_AS BBF_Unicode_PrefCP1257_CS_AS |
BBF_Unicode_CP1257_CI_AI BBF_Unicode_CP1257_CS_AI |
Finnish_Swedish |
Finnish_Swedish_CS_AS |
Finnish_Swedish_CI_AS 芬蘭文_瑞典文_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_PrefCP1255_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 |
日文_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_PrefCP1_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_PrefCP1253_CS_AS |
BBF_Unicode_CP1253_CI_AI BBF_Unicode_CP1253_CS_AI |
Modern_Spanish |
Modern_Spanish_CS_AS |
Modern_Spanish_CI_AS 現代_西班牙文_CI_AI |
Mongolian |
Mongolian_CS_AS |
蒙古文_CI_AS Mongolian_CI_AI |
Polish |
Polish_CS_AS |
Polish_CI_AS Polish_CI_AI |
Thai |
BBF_Unicode_CP874_CS_AS BBF_Unicode_PrefCP874_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_PrefCP1254_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 |
烏克蘭文_CI_AS 烏克蘭文_CI_AI |
越南文 |
BBF_Unicode_CP1258_CS_AS BBF_Unicode_PrefCP1258_CS_AS Vietnamese_CS_AS |
BBF_Unicode_CP1258_CI_AI BBF_Unicode_CP1258_CS_AI 越南文_CI_AS 越南文_CI_AI |
Babelfish 中的預設定序行為
早期,可定序資料類型的預設定序是 pg_catalog.default
。資料類型和依賴這些資料類型的物件遵循區分大小寫的定序。此條件可能會影響具有不區分大小寫定序之資料集的 T 物件SQL。從 Babelfish 2.3.0 開始,可定序資料類型 ( TEXT和 除外NTEXT) 的預設定序與 babelfishpg_tsql.server_collation_name
參數中的定序相同。當您升級至 Babelfish 2.3.0 時,系統會在建立資料庫叢集時自動挑選預設定序,這不會產生任何可見的影響。