Intercalaciones compatibles con Babelfish
Cuando crea un clúster de base de datos de Aurora PostgreSQL con Babelfish, elige una intercalación para sus datos. Una intercalación especifica el orden de clasificación y los patrones de bits que producen el texto o los caracteres en un determinado lenguaje humano escrito. Una intercalación incluye reglas que comparan los datos para un conjunto determinado de patrones de bits. La intercalación está relacionada con la localización. Las diferentes configuraciones regionales afectan a la asignación de caracteres, el orden de clasificación y otros aspectos similares. Los atributos de intercalación se reflejan en los nombres de varias intercalaciones. Para obtener información sobre los atributos, consulte la Babelfish collation attributes table.
Babelfish asigna las intercalaciones de SQL Server a intercalaciones comparables proporcionadas por Babelfish. Babelfish predefine las intercalaciones Unicode con comparaciones de cadenas y órdenes de clasificación sensibles a la cultura. Babelfish también proporciona una manera de traduce las intercalaciones de la base de datos de SQL Server a la intercalación de Babelfish más cercana. Se proporcionan intercalaciones específicas para cada configuración regional en diferentes idiomas y regiones.
Algunas intercalaciones especifican una página de códigos que corresponde a una codificación del lado del cliente. Babelfish traduce automáticamente de la codificación del servidor a la codificación del cliente en función de la intercalación de cada columna de salida.
Babelfish admite las intercalaciones indicadas en la Babelfish supported collations table. Babelfish asigna las intercalaciones de SQL Server a intercalaciones comparables proporcionadas por Babelfish.
Babelfish utiliza la versión 153.80 de la biblioteca de intercalación de Componentes internacionales para Unicode (ICU). Para obtener más información sobre las intercalaciones de ICU, consulte Collation
Temas
- Parámetros de clúster de base de datos que controlan la intercalación y la configuración regional
- Intercalaciones deterministas y no deterministas y Babelfish
- Intercalaciones compatibles con Babelfish
- Intercalación predeterminada en Babelfish
- Administración de intercalaciones
- Limitaciones de intercalación y diferencias de comportamiento
Parámetros de clúster de base de datos que controlan la intercalación y la configuración regional
Los siguientes parámetros afectan al comportamiento de intercalación.
- babelfishpg_tsql.default_locale
Este parámetro especifica la configuración regional predeterminada que usa la intercalación. Este parámetro se utiliza en combinación con los atributos enumerados en la Babelfish collation attributes table para personalizar las intercalaciones de un idioma y una región específicos. El valor predeterminado para este parámetro es
en-US
.La configuración regional predeterminada se aplica a todos los nombres de intercalación de Babelfish que empiezan por "BBF" y a todas las intercalaciones de SQL Server asignadas a intercalaciones de Babelfish. El cambio de la configuración de este parámetro en un clúster de base de datos de Babelfish existente no afecta a la configuración regional de las intercalaciones existentes. Para ver la lista de intercalaciones, consulte la Babelfish supported collations table.
- babelfishpg_tsql.server_collation_name
Este parámetro especifica la intercalación predeterminada para el servidor (instancia de clúster de base de datos de Aurora PostgreSQL) y la base de datos. El valor predeterminado es
sql_latin1_general_cp1_ci_as
.server_collation_name
tiene que ser una intercalaciónCI_AS
porque en T-SQL, la intercalación del servidor determina cómo se comparan los identificadores.Al crear su clúster de base de datos Babelfish, puede elegir el valor de Collation name (Nombre de la intercalación) en la lista seleccionable. Se incluyen las intercalaciones enumeradas en la Babelfish supported collations table. No modifique
server_collation_name
después de crear la base de datos de Babelfish.
La configuración que elija al crear el clúster de la base de datos de Babelfish para Aurora PostgreSQL se almacena en el grupo de parámetros del clúster de base de datos asociado con el clúster para estos parámetros y establece su comportamiento de intercalación.
Intercalaciones deterministas y no deterministas y Babelfish
Babelfish admite las combinaciones deterministas y no deterministas:
Una intercalación determinista evalúa como iguales los caracteres que tienen secuencias de bytes idénticas. Eso significa que
x
yX
no son iguales en una intercalación determinista. Las intercalaciones deterministas pueden distinguir mayúsculas de minúsculas (CS) y acentos (AS).Una intercalación no determinista no necesita una coincidencia idéntica. Una intercalación no determinista evalúa
x
yX
como iguales. Las intercalaciones no deterministas no distinguen mayúsculas de minúsculas (IC) ni acentos (IA).
En la siguiente tabla puede encontrar algunas diferencias de comportamiento entre Babelfish y PostgreSQL cuando se utilizan intercalaciones no deterministas.
Babelfish | PostgreSQL |
---|---|
Admite la cláusula LIKE para las intercalaciones CI_AS. |
No admite la cláusula LIKE en las intercalaciones no deterministas. |
Solo admite la cláusula LIKE en las siguientes intercalaciones de IA y a partir de la versión 4.2.0 de Babelfish:
|
No admite la cláusula LIKE en las intercalaciones no deterministas. |
Para obtener una lista de otras limitaciones y diferencias de comportamiento de Babelfish en comparación con SQL Server y PostgreSQL, consulte Limitaciones de intercalación y diferencias de comportamiento.
Babelfish y SQL Server siguen una convención de nomenclatura para las intercalaciones que describen los atributos de intercalación, como se muestra en la tabla siguiente.
Atributo | Descripción |
---|---|
IA |
No distingue acentos. |
AS |
Distingue acentos. |
BIN2 |
BIN2 solicita que los datos se clasifiquen en orden de puntos de código. El orden de puntos de código Unicode es el mismo orden de caracteres para las codificaciones UTF-8, UTF-16 y UCS-2. El orden de los puntos de código es una intercalación determinista rápida. |
CI |
No distingue mayúsculas de minúsculas. |
CS |
Distingue mayúsculas de minúsculas. |
PREF |
Para ordenar las letras mayúsculas antes que las minúsculas, utilice una intercalación de PREF. Si la comparación no distingue mayúsculas de minúsculas, la versión en mayúscula de una letra se ordena antes que la versión en minúscula, si no hay otra distinción. La biblioteca de ICU admite preferencias en mayúsculas con PREF solo se puede aplicar a las intercalaciones |
Intercalaciones compatibles con Babelfish
Utilice las siguientes intercalaciones como intercalación de servidores o intercalación de objetos.
ID de intercalación | Notas |
---|---|
bbf_unicode_general_ci_as |
Admite la comparación sin distinción de mayúsculas y minúsculas y el operador LIKE. |
bbf_unicode_cp1_ci_as |
Intercalación no determinista |
bbf_unicode_CP1250_ci_as |
Intercalación no determinista |
bbf_unicode_CP1251_ci_as |
Intercalación no determinista |
bbf_unicode_cp1253_ci_as |
Intercalación no determinista |
bbf_unicode_cp1254_ci_as |
Intercalación no determinista |
bbf_unicode_cp1255_ci_as |
Intercalación no determinista |
bbf_unicode_cp1256_ci_as |
Intercalación no determinista |
bbf_unicode_cp1257_ci_as |
Intercalación no determinista |
bbf_unicode_cp1258_ci_as |
Intercalación no determinista |
bbf_unicode_cp874_ci_as |
Intercalación no determinista |
sql_latin1_general_cp1250_ci_as |
Codificación de caracteres de un solo byte no determinista |
sql_latin1_general_cp1251_ci_as |
Intercalación no determinista |
sql_latin1_general_cp1_ci_as |
Intercalación no determinista |
sql_latin1_general_cp1253_ci_as |
Intercalación no determinista |
sql_latin1_general_cp1254_ci_as |
Intercalación no determinista |
sql_latin1_general_cp1255_ci_as |
Intercalación no determinista |
sql_latin1_general_cp1256_ci_as |
Intercalación no determinista |
sql_latin1_general_cp1257_ci_as |
Intercalación no determinista |
sql_latin1_general_cp1258_ci_as |
Intercalación no determinista |
chinese_prc_ci_as |
Intercalación no determinista que admite chino (RPC). |
cyrillic_general_ci_as |
Intercalación no determinista que admite el cirílico. |
finnish_swedish_ci_as |
Intercalación no determinista que admite el finlandés. |
french_ci_as |
Intercalación no determinista que admite el francés. |
Japanese_CI_AS |
Intercalación no determinista que admite japonés. Se admite en Babelfish 2.1.0 y versiones posteriores. |
korean_wansung_ci_as |
Intercalación no determinista que admite el coreano (con clasificación de diccionario). |
latin1_general_ci_as |
Intercalación no determinista que admite caracteres latinos. |
modern_spanish_ci_as |
Intercalación no determinista que admite el español moderno. |
polish_ci_as |
Intercalación no determinista que admite el polaco. |
thai_ci_as |
Intercalación no determinista que admite el tailandés. |
traditional_spanish_ci_as |
Intercalación no determinista que admite el español (clasificación tradicional). |
turkish_ci_as |
Intercalación no determinista que admite el turco. |
ukrainian_ci_as |
Intercalación no determinista que admite el ucraniano. |
vietnamese_ci_as |
Intercalación no determinista que admite el vietnamita. |
Puede utilizar las siguientes intercalaciones como intercalaciones de objetos.
Dialecto | Opciones deterministas | Opciones no deterministas |
---|---|---|
Árabe |
Arabic_CS_AS |
Arabic_CI_AS Arabic_CI_AI |
Alfabeto árabe |
BBF_Unicode_CP1256_CS_AS BBF_Unicode_Pref_CP1256_CS_AS |
BBF_Unicode_CP1256_CI_AI BBF_Unicode_CP1256_CS_AI |
Binario |
latin1_general_bin2 BBF_Unicode_BIN2 |
– |
Idiomas de Europa Central y Europa del Este que utilizan escritura latina |
BBF_Unicode_CP1250_CS_AS BBF_Unicode_Pref_CP1250_CS_AS |
BBF_Unicode_CP1250_CI_AI BBF_Unicode_CP1250_CS_AI |
Chino |
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 |
Alfabeto cirílico |
BBF_Unicode_CP1251_CS_AS BBF_Unicode_Pref_CP1251_CS_AS |
BBF_Unicode_CP1251_CI_AI BBF_Unicode_CP1251_CS_AI |
Estonio |
Estonian_CS_AS |
Estonian_CI_AS Estonian_CI_AI |
Estonio, letón y lituano |
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 |
Francés |
French_CS_AS |
French_CI_AS French_CI_AI |
Griego |
Greek_CS_AS |
Greek_CI_AS Greek_CI_AI |
Hebreo |
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 |
Japonés (Babelfish 2.1.0 y posterior) |
Japanese_CS_AS |
Japanese_CI_AI Japanese_CI_AS |
Korean_Wamsung |
Korean_Wamsung_CS_AS |
Korean_Wamsung_CI_AS Korean_Wamsung_CI_AI |
Caracteres latinos para la página de códigos 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 |
Griego moderno |
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 |
Mongol |
Mongolian_cs_as |
Mongolian_CI_AS Mongolian_CI_AI |
Polaco |
Polish_CS_AS |
Polish_CI_AS Polish_CI_AI |
Tailandés |
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 |
Turco |
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, turco_ci_ai |
Ucraniano |
Ukranian_CS_AS |
Ukranian_CI_AS Ukranian_CI_AI |
Vietnamita |
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 |
Intercalación predeterminada en Babelfish
Anteriormente, la intercalación predeterminada de los tipos de datos recopilables era pg_catalog.default
. Los tipos de datos y los objetos que dependen de estos tipos de datos siguen una intercalación que distingue entre mayúsculas y minúsculas. Esta condición puede afectar a los objetos T-SQL del conjunto de datos, ya que la intercalación no distingue entre mayúsculas y minúsculas. A partir de Babelfish 2.3.0, la intercalación predeterminada para los tipos de datos recopilables (excepto TEXT y NTEXT) es la misma que la intercalación en el parámetro babelfishpg_tsql.server_collation_name
. Al actualizar a Babelfish 2.3.0, la intercalación predeterminada se selecciona automáticamente en el momento de la creación del clúster de base de datos, lo que no tiene ningún impacto visible.