

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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à.

# TEXT\$1TO\$1NUMERIC\$1ALT
<a name="r_TEXT_TO_NUMERIC_ALT"></a>

TEXT\$1TO\$1NUMERIC\$1ALT esegue un'operazione di casting in stile Teradata per convertire una stringa di caratteri in un formato di dati numerico. 

## Sintassi
<a name="r_TEXT_TO_NUMERIC_ALT-synopsis"></a>

```
TEXT_TO_NUMERIC_ALT (expression [, 'format'] [, precision, scale])
```

## Arguments (Argomenti)
<a name="r_TEXT_TO_NUMERIC_ALT-arguments"></a>

 *espressione*   
Un'espressione che restituisce uno o più valori CHAR o VARCHAR, ad esempio un nome di colonna o un letterale. La conversione di valori null restituisce null. Le stringhe vuote sono convertite in 0. 

 *format*   
Una letterale di stringa che definisce il formato dell'espressione di input. Per ulteriori informazioni, consultare [Caratteri di formattazione in stile Teradata per i dati numerici](r_Numeric-format-teradata.md). 

 *precisione*   
Il numero di cifre nel risultato numerico. L'impostazione predefinita è 38. 

 *scale*   
Il numero di cifre alla destra del punto decimale nel risultato numerico. Il valore predefinito è 0. 

## Tipo restituito
<a name="r_TEXT_TO_NUMERIC_ALT-return-type"></a>

TEX\$1TO\$1NUMERIC\$1ALT restituisce un numero DECIMAL.

Amazon Redshift restituisce un errore se la conversione nella frase *format* che si specifica non ha esito positivo.

Amazon Redshift esegue il casting della stringa *expression* di input sul tipo numerico con la massima precisione specificata per quel tipo nell'opzione *precision*. Se la lunghezza del valore numerico supera il valore specificato per *precision*, Amazon Redshift arrotonda il valore numerico in base alle seguenti regole:
+ Se la lunghezza del risultato del casting supera la lunghezza specificata nella frase *format*, Amazon Redshift restituisce un errore.
+ Se il risultato viene sottoposto a casting su un valore numerico, viene arrotondato al valore più vicino. Se la porzione frazionaria è esattamente a metà strada tra il risultato del casting superiore e quello inferiore, il risultato viene arrotondato al valore pari più vicino.

## Esempi
<a name="r_TEXT_TO_NUMERIC_ALT-examples"></a>

L'esempio seguente converte la stringa *expression* di input '1.5' nel valore numerico '2'. Perché l'istruzione non specifica *scale*, *scale* è impostato su 0 e il risultato del casting non include un risultato di frazione. Poiché .5 è a metà strada tra 1 e 2, il risultato del casting viene arrotondato al valore pari di 2.

```
select text_to_numeric_alt('1.5');
```

```
 text_to_numeric_alt
---------------------
                   2
```

L'esempio seguente converte la stringa *expression* di input '2.51' nel valore numerico '3'. Perché l'istruzione non specifica un valore *scale*, *scale* è impostato su 0 e il risultato del casting non include un risultato di frazione. Poiché .51 è più vicino a 3 che a 2, il risultato del casting viene arrotondato al valore 3.

```
select text_to_numeric_alt('2.51');
```

```
 text_to_numeric_alt
---------------------
                   3
```

L'esempio seguente converte la stringa *expression* di input 123.52501 con una *precisione* di 10 e una *scala* di 2 al valore numerico 123,53. 

```
select text_to_numeric_alt('123.52501', 10, 2);
```

```
 text_to_numeric_alt
---------------------
               123.53
```

Nell’esempio seguente la stringa *expression* di input '123\$1' con la frase *format* '999S' viene convertita nel numero intero 1230. Il carattere S indica un decimale con zone firmate. Per ulteriori informazioni, consulta [Caratteri di formattazione in stile Teradata per i dati numerici](r_Numeric-format-teradata.md).

```
select text_to_numeric_alt('123{', '999S');
```

```
text_to_int_alt
----------
      1230
```

L'esempio seguente converte la stringa di *espressione* di input 'USD123' con la frase di *formato* 'C9 (I) 'nel valore numerico 124. Per informazioni, consulta [Caratteri di formattazione in stile Teradata per i dati numerici](r_Numeric-format-teradata.md).

```
select text_to_numeric_alt('USD123.9', 'C9(I)');
```

```
text_to_numeric_alt
----------
       124
```

Nell'esempio seguente viene specificata una colonna di tabella come *expression* di input.

```
select text_to_numeric_alt(a), text_to_numeric_alt(b) from t_text2numeric order by 1;
```

```
           text_to_numeric_alt           |           text_to_numeric_alt
-----------------------------------------+-----------------------------------------
 -99999999999999999999999999999999999999 | -99999999999999999999999999999999999999
                                  -12300 |                                  -12300
                                     123 |                                     123
                                     123 |                                     123
  99999999999999999999999999999999999999 |  99999999999999999999999999999999999999
```

Di seguito è riportata la definizione di tabella e l'istruzione insert per questo esempio.

```
create table  t_text2numeric (a varchar(200), b char(200));
```

```
insert into  t_text2numeric values
('123', '123'),
('+123.456', '+123.456'),
('-' || repeat('9', 38), '-' || repeat('9', 38)),
(repeat('9', 38) || '+', repeat('9', 38) || '+'),
('-123E2', '-123E2');
```