

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Considerazioni sui tipi di dati
<a name="data-types-considerations"></a>

## Limiti di dimensione
<a name="data-types-considerations-size"></a>

Per i tipi di dati che non specificano un limite di dimensione, tieni presente che esiste un limite pratico di 32 MB per tutti i dati in una singola riga. Per ulteriori informazioni, consulta [Row or column size limitation](other-notable-limitations.md#sql-limitations-rowsize) in [Considerazioni e restrizioni per le query SQL in Amazon Athena](other-notable-limitations.md).

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

Un `CHAR({{n}})` valore ha sempre un numero di caratteri. `{{n}}` Ad esempio, se si trasmette 'abc' a`CHAR(7)`, vengono aggiunti 4 spazi finali. 

I confronti di `CHAR` valori includono gli spazi iniziali e finali. 

Se viene specificata una lunghezza per `CHAR` o`VARCHAR`, le stringhe vengono troncate alla lunghezza specificata durante la lettura. Se la stringa di dati sottostante è più lunga, la stringa di dati sottostante rimane invariata.

Per evitare una virgoletta singola in una `CHAR` o`VARCHAR`, usa una virgoletta singola aggiuntiva.

Per eseguire il cast di un tipo di dati non stringa in una stringa in una query DML, `VARCHAR` esegui il cast sul tipo di dati.

Per utilizzare la funzione `substr` per restituire una sottostringa di lunghezza specificata da un tipo di dati `CHAR`, è necessario innanzitutto eseguire il cast del valore `CHAR` come `VARCHAR`, come mostrato nell’esempio seguente. Nell’esempio seguente, `col1` utilizzo il tipo di dati `CHAR`.

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

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

Per specificare valori decimali come letterali, ad esempio durante la selezione delle righe con un determinato valore decimale nell’espressione di una query DDL, specifica la definizione di tipo `SELECT` e indica il valore decimale come letterale (tra virgolette singole) nella query, come in questo esempio: `DECIMAL`.

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

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