

# Comprensión de las intercalaciones de Babelfish para Aurora PostgreSQL
<a name="babelfish-collations"></a>

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](#bfish-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](#bfish-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](https://unicode-org.github.io/icu/userguide/collation/) (Intercalación) en la documentación de ICU. Para obtener más información sobre PostgreSQL y la intercalación, consulte [Collation Support](https://www.postgresql.org/docs/current/collation.html) (Compatibilidad con intercalación) en la documentación de PostgreSQL.

**Topics**
+ [Parámetros de clúster de base de datos que controlan la intercalación y la configuración regional](#babelfish-collations.parameters)
+ [Intercalaciones deterministas y no deterministas en Babelfish](#babelfish-collations.deterministic-nondeterministic)
+ [Intercalaciones admitidas por Babelfish en el nivel de base de datos](#babelfish-collations.database-level)
+ [Intercalaciones de servidores y objetos en Babelfish](#babelfish-collations.reference-tables-supported-collations)
+ [Comportamiento predeterminado de las intercalaciones en Babelfish](#babelfish-collations-default)
+ [Administración de intercalaciones](collation.managing.md)
+ [Limitaciones de intercalación y diferencias de comportamiento](collation.limitations.md)

## Parámetros de clúster de base de datos que controlan la intercalación y la configuración regional
<a name="babelfish-collations.parameters"></a><a name="collation-related-parameters"></a>

Los siguientes parámetros afectan al comportamiento de intercalación. 

**babelfishpg\$1tsql.default\$1locale**  
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](#bfish-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](#bfish-collations-table). 

**babelfishpg\$1tsql.server\$1collation\$1name**  
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ón `CI_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](#bfish-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 en Babelfish
<a name="babelfish-collations.deterministic-nondeterministic"></a>

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` y `X` 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` y `X` 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\$1AS.  |  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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/babelfish-collations.html)  |  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](collation.limitations.md). 

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.<a name="bfish-collation-attributes-table"></a>


| 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 `colCaseFirst=upper`, pero no para las intercalaciones CI\$1AS. PREF solo se puede aplicar a las intercalaciones `CS_AS` deterministas. | 

## Intercalaciones admitidas por Babelfish en el nivel de base de datos
<a name="babelfish-collations.database-level"></a>

Babelfish admite las siguientes intercalaciones en el nivel de base de datos:
+ bbf\$1unicode\$1bin2
+ bbf\$1unicode\$1cp1\$1ci\$1ai
+ bbf\$1unicode\$1cp1\$1ci\$1as
+ bbf\$1unicode\$1cp1250\$1ci\$1ai
+ bbf\$1unicode\$1cp1250\$1ci\$1as
+ bbf\$1unicode\$1cp1257\$1ci\$1ai
+ bbf\$1unicode\$1cp1257\$1ci\$1as
+ estonian\$1ci\$1ai
+ estonian\$1ci\$1as
+ finnish\$1swedish\$1ci\$1ai
+ finnish\$1swedish\$1ci\$1as
+ french\$1ci\$1ai
+ french\$1ci\$1as
+ latin1\$1general\$1bin2
+ latin1\$1general\$1ci\$1ai
+ latin1\$1general\$1ci\$1as
+ latin1\$1general\$190\$1bin2
+ latin1\$1general\$1100\$1bin2
+ latin1\$1general\$1140\$1bin2
+ modern\$1spanish\$1ci\$1ai
+ modern\$1spanish\$1ci\$1as
+ polish\$1ci\$1ai
+ polish\$1ci\$1as
+ sql\$1latin1\$1general\$1cp1\$1ci\$1ai
+ sql\$1latin1\$1general\$1cp1\$1ci\$1as
+ sql\$1latin1\$1general\$1cp1250\$1ci\$1as
+ sql\$1latin1\$1general\$1cp1251\$1ci\$1as
+ sql\$1latin1\$1general\$1cp1257\$1ci\$1as
+ traditional\$1spanish\$1ci\$1ai
+ traditional\$1spanish\$1ci\$1as

**nota**  
Para usar una intercalación diferente en el nivel de base de datos, asegúrese de que coincida con la intercalación del nivel de servidor. Para obtener más información, consulte [Intercalaciones de servidores y objetos en Babelfish](#babelfish-collations.reference-tables-supported-collations)

## Intercalaciones de servidores y objetos en Babelfish
<a name="babelfish-collations.reference-tables-supported-collations"></a>

Utilice las siguientes intercalaciones como intercalación de servidores o intercalación de objetos.<a name="bfish-collations-table"></a>


| ID de intercalación | Notas | 
| --- | --- | 
|  bbf\$1unicode\$1general\$1ci\$1as  |  Admite la comparación sin distinción de mayúsculas y minúsculas y el operador LIKE.  | 
|  bbf\$1unicode\$1cp1\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1252.txt) también conocido como CP1252.  | 
|  bbf\$1unicode\$1CP1250\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1250.txt) utilizada para representar textos en idiomas de Europa Central y Europa del Este que utilizan escritura latina.  | 
|  bbf\$1unicode\$1CP1251\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1251.txt) para los idiomas que utilizan el alfabeto cirílico.  | 
|  bbf\$1unicode\$1cp1253\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1253.txt) utilizada para representar el griego moderno.  | 
|  bbf\$1unicode\$1cp1254\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1254.txt) que admite el turco.  | 
|  bbf\$1unicode\$1cp1255\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1255.txt) que admite el hebreo.  | 
|  bbf\$1unicode\$1cp1256\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1256.txt) utilizada para escribir idiomas que utilizan escritura árabe.  | 
|  bbf\$1unicode\$1cp1257\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1257.txt) utilizada para admitir los idiomas estonio, letón y lituano.  | 
|  bbf\$1unicode\$1cp1258\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1258.txt) utilizada para escribir caracteres vietnamitas.  | 
|  bbf\$1unicode\$1cp874\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit874.txt) utilizada para escribir caracteres tailandeses.  | 
|  sql\$1latin1\$1general\$1cp1250\$1ci\$1as  |  [Codificación de caracteres de un solo byte no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1250.txt) utilizada para representar caracteres latinos.  | 
|  sql\$1latin1\$1general\$1cp1251\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1251.txt) que admite caracteres latinos.  | 
|  sql\$1latin1\$1general\$1cp1\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1252.txt) que admite caracteres latinos.  | 
|  sql\$1latin1\$1general\$1cp1253\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1253.txt) que admite caracteres latinos.  | 
|  sql\$1latin1\$1general\$1cp1254\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1254.txt) que admite caracteres latinos.  | 
|  sql\$1latin1\$1general\$1cp1255\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1255.txt) que admite caracteres latinos.  | 
|  sql\$1latin1\$1general\$1cp1256\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1256.txt) que admite caracteres latinos.  | 
|  sql\$1latin1\$1general\$1cp1257\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1257.txt) que admite caracteres latinos.  | 
|  sql\$1latin1\$1general\$1cp1258\$1ci\$1as  |  [Intercalación no determinista](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1258.txt) que admite caracteres latinos.  | 
|  chinese\$1prc\$1ci\$1as  |  Intercalación no determinista que admite chino (RPC).  | 
|  cyrillic\$1general\$1ci\$1as  |  Intercalación no determinista que admite el cirílico.  | 
|  finnish\$1swedish\$1ci\$1as  |  Intercalación no determinista que admite el finlandés.  | 
|  french\$1ci\$1as  |  Intercalación no determinista que admite el francés.  | 
|  Japanese\$1CI\$1AS  | Intercalación no determinista que admite japonés. Se admite en Babelfish 2.1.0 y versiones posteriores. | 
|  korean\$1wansung\$1ci\$1as  |  Intercalación no determinista que admite el coreano (con clasificación de diccionario).  | 
|  latin1\$1general\$1ci\$1as  |  Intercalación no determinista que admite caracteres latinos.  | 
|  modern\$1spanish\$1ci\$1as  |  Intercalación no determinista que admite el español moderno.  | 
|  polish\$1ci\$1as  |  Intercalación no determinista que admite el polaco.  | 
|  thai\$1ci\$1as  |  Intercalación no determinista que admite el tailandés.  | 
|  traditional\$1spanish\$1ci\$1as  |  Intercalación no determinista que admite el español (clasificación tradicional).  | 
|  turkish\$1ci\$1as  |  Intercalación no determinista que admite el turco.  | 
|  ukrainian\$1ci\$1as  |  Intercalación no determinista que admite el ucraniano.  | 
|  vietnamese\$1ci\$1as  |  Intercalación no determinista que admite el vietnamita.  | 

Puede utilizar las siguientes intercalaciones como intercalaciones de objetos.<a name="bfish-icu-collations-table"></a>


| Dialecto | Opciones deterministas | Opciones no deterministas | 
| --- | --- | --- | 
|  Árabe  |  Arabic\$1CS\$1AS  |  Arabic\$1CI\$1AS Arabic\$1CI\$1AI  | 
|  Alfabeto árabe  |  BBF\$1Unicode\$1CP1256\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1256\$1CS\$1AS  |  BBF\$1Unicode\$1CP1256\$1CI\$1AI BBF\$1Unicode\$1CP1256\$1CS\$1AI  | 
|  Binario  |  latin1\$1general\$1bin2 BBF\$1Unicode\$1BIN2  |  –  | 
|  Idiomas de Europa Central y Europa del Este que utilizan escritura latina  |  BBF\$1Unicode\$1CP1250\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1250\$1CS\$1AS  |  BBF\$1Unicode\$1CP1250\$1CI\$1AI BBF\$1Unicode\$1CP1250\$1CS\$1AI  | 
|  Chino  |  Chinese\$1PRC\$1CS\$1AS  |  Chinese\$1PRC\$1CI\$1AS Chinese\$1PRC\$1CI\$1AI  | 
|  Cyrillic\$1General  |  Cyrillic\$1General\$1CS\$1AS  |  Cyrillic\$1General\$1CI\$1AS Cyrillic\$1General\$1CI\$1AI  | 
|  Alfabeto cirílico  |  BBF\$1Unicode\$1CP1251\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1251\$1CS\$1AS  |  BBF\$1Unicode\$1CP1251\$1CI\$1AI BBF\$1Unicode\$1CP1251\$1CS\$1AI  | 
|  Estonio  |  Estonian\$1CS\$1AS  |  Estonian\$1CI\$1AS Estonian\$1CI\$1AI  | 
|  Estonio, letón y lituano  |  BBF\$1Unicode\$1CP1257\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1257\$1CS\$1AS  |  BBF\$1Unicode\$1CP1257\$1CI\$1AI BBF\$1Unicode\$1CP1257\$1CS\$1AI  | 
|  Finnish\$1Swedish  |  Finnish\$1Swedish\$1CS\$1AS  |  Finnish\$1Swedish\$1CI\$1AS Finnish\$1Swedish\$1CI\$1AI  | 
|  Francés  |  French\$1CS\$1AS  |  French\$1CI\$1AS French\$1CI\$1AI  | 
|  Griego  |  Greek\$1CS\$1AS  |  Greek\$1CI\$1AS Greek\$1CI\$1AI  | 
|  Hebreo  |  BBF\$1Unicode\$1CP1255\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1255\$1CS\$1AS Hebrew\$1CS\$1AS  |  BBF\$1Unicode\$1CP1255\$1CI\$1AI BBF\$1Unicode\$1CP1255\$1CS\$1AI Hebrew\$1CI\$1AS Hebrew\$1CI\$1AI  | 
|  Japonés (Babelfish 2.1.0 y posterior)  | Japanese\$1CS\$1AS | Japanese\$1CI\$1AI Japanese\$1CI\$1AS | 
|  Korean\$1Wamsung  |  Korean\$1Wamsung\$1CS\$1AS  |  Korean\$1Wamsung\$1CI\$1AS Korean\$1Wamsung\$1CI\$1AI  | 
|  Caracteres latinos para la página de códigos CP1252  |  latin1\$1general\$1cs\$1as BBF\$1Unicode\$1General\$1CS\$1AS BBF\$1Unicode\$1General\$1Pref\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1\$1CS\$1AS BBF\$1Unicode\$1CP1\$1CS\$1AS  |  latin1\$1general\$1ci\$1as latin1\$1general\$1ci\$1ai latin1\$1general\$1cs\$1ai BBF\$1Unicode\$1General\$1CI\$1AI BBF\$1Unicode\$1General\$1CS\$1AI BBF\$1Unicode\$1CP1\$1CI\$1AI BBF\$1Unicode\$1CP1\$1CS\$1AI  | 
|  Griego moderno  |  BBF\$1Unicode\$1CP1253\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1253\$1CS\$1AS  |  BBF\$1Unicode\$1CP1253\$1CI\$1AI BBF\$1Unicode\$1CP1253\$1CS\$1AI  | 
|  Modern\$1Spanish  |  Modern\$1Spanish\$1CS\$1AS  |  Modern\$1Spanish\$1CI\$1AS Modern\$1Spanish\$1CI\$1AI  | 
|  Mongol  |  Mongolian\$1cs\$1as  |  Mongolian\$1CI\$1AS Mongolian\$1CI\$1AI  | 
|  Polaco  |  Polish\$1CS\$1AS  |  Polish\$1CI\$1AS Polish\$1CI\$1AI  | 
|  Tailandés  |  BBF\$1Unicode\$1CP874\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP874\$1CS\$1AS Thai\$1cs\$1as  |  BBF\$1Unicode\$1CP874\$1CI\$1AI BBF\$1Unicode\$1CP874\$1CS\$1AI Thai\$1ci\$1as, Thai\$1ci\$1ai  | 
|  Traditional\$1Spanish  |  Traditional\$1Spanish\$1CS\$1AS  |  Traditional\$1Spanish\$1CI\$1AS Traditional\$1Spanish\$1CI\$1AI  | 
|  Turco  |  BBF\$1Unicode\$1CP1254\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1254\$1CS\$1AS Turkish\$1CS\$1AS  |  BBF\$1Unicode\$1CP1254\$1CI\$1AI BBF\$1Unicode\$1CP1254\$1CS\$1AI Turkish\$1ci\$1as, turco\$1ci\$1ai  | 
|  Ucraniano  |  Ukranian\$1CS\$1AS  |  Ukranian\$1CI\$1AS Ukranian\$1CI\$1AI  | 
|  Vietnamita  |  BBF\$1Unicode\$1CP1258\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1258\$1CS\$1AS Vietnamese\$1CS\$1AS  |  BBF\$1Unicode\$1CP1258\$1CI\$1AI BBF\$1Unicode\$1CP1258\$1CS\$1AI Vietnamese\$1CI\$1AS Vietnamese\$1CI\$1AI  | 

## Comportamiento predeterminado de las intercalaciones en Babelfish
<a name="babelfish-collations-default"></a>

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. 