

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Considérations relatives aux types de données
<a name="data-types-considerations"></a>

## Limites de taille
<a name="data-types-considerations-size"></a>

Pour les types de données qui ne spécifient pas de limite de taille, gardez à l’esprit qu’une limite pratique de 32 Mo s’applique pour toutes les données d’une même ligne. Pour plus d’informations, consultez [Row or column size limitation](other-notable-limitations.md#sql-limitations-rowsize) dans [Considérations et limitations relatives aux requêtes SQL dans Amazon Athena](other-notable-limitations.md).

## CHAR et VARCHAR
<a name="data-types-considerations-char"></a>

Une valeur `CHAR(n)` comporte toujours `n` caractères. Par exemple, si vous convertissez « abc » en `CHAR(7)`, quatre espaces de fin sont ajoutés. 

Les comparaisons de valeurs `CHAR` incluent les espaces de début et de fin. 

Si une longueur est spécifiée pour `CHAR` ou `VARCHAR`, les chaînes sont tronquées à la longueur spécifiée lors de la lecture. Si la chaîne de données sous-jacente est plus longue, elle reste inchangée.

Pour échapper un guillemet simple dans `CHAR` ou `VARCHAR`, utilisez un guillemet simple supplémentaire.

Pour convertir un type de données autre qu’une chaîne en chaîne dans une requête DML, utilisez `VARCHAR`.

Pour utiliser la fonction `substr` afin de renvoyer une sous-chaîne d’une longueur spécifiée à partir du type de données `CHAR`, vous devez d’abord convertir la valeur `CHAR` en `VARCHAR`. Dans l’exemple suivant, `col1` utilise le type de données `CHAR`.

```
substr(CAST(col1 AS VARCHAR), 1, 4)
```

## DECIMAL
<a name="data-types-considerations-decimal"></a>

Pour spécifier des valeurs décimales en tant que littéraux dans des requêtes `SELECT`, par exemple lors de la sélection de lignes ayant une valeur décimale spécifique, vous pouvez spécifier le type `DECIMAL` et indiquer la valeur décimale en tant que littéral entre guillemets simples dans votre requête, comme illustré dans les exemples suivants.

```
SELECT * FROM my_table
WHERE decimal_value = DECIMAL '0.12'
```

```
SELECT DECIMAL '44.6' + DECIMAL '77.2'
```