

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

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

TEXT\$1TO\$1NUMERIC\$1ALT effectue une opération de conversion de style Teradata pour convertir une chaîne de caractères en un format de données numériques. 

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

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

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

 *expression*   
Expression qui correspond à une ou plusieurs valeurs CHAR ou VARCHAR, par exemple, un nom de colonne ou un littéral. La conversion de valeurs null renvoie des valeurs null. Les chaînes vides sont converties en 0. 

 *format*   
Littéral de chaîne qui définit le format de l’expression en entrée. Pour plus d'informations, consultez [Caractères de formatage de type Teradata pour les données numériques](r_Numeric-format-teradata.md). 

 *precision*   
Nombre de chiffres dans le résultat numérique. La valeur par défaut est 38. 

 *échelle*   
Nombre de chiffres à droite de la virgule décimale dans le résultat numérique. La valeur par défaut est 0. 

## Type de retour
<a name="r_TEXT_TO_NUMERIC_ALT-return-type"></a>

TEXT\$1TO\$1NUMERIC\$1ALT renvoie un nombre DECIMAL.

Amazon Redshift renvoie une erreur si la conversion dans la phrase *format* que vous spécifiez n’a pas réussi.

Amazon Redshift convertit la chaîne d’*expression* en entrée en type numérique avec la précision la plus élevée que vous spécifiez pour ce type dans l’option *precision*. Si la longueur de la valeur numérique dépasse la valeur que vous spécifiez pour *precision*, Amazon Redshift arrondit la valeur numérique en appliquant les règles suivantes :
+ Si la longueur du résultat de la conversion dépasse la longueur que vous spécifiez dans la phrase *format*, Amazon Redshift renvoie une erreur.
+ Si le résultat est converti en une valeur numérique, le résultat est arrondi à la valeur la plus proche. Si la partie après la virgule se trouve exactement à mi-chemin entre les résultats supérieur et inférieur de la conversion, le résultat est arrondi à la valeur pair la plus proche.

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

L’exemple suivant convertit la chaîne d’*expression* en entrée 1.5 en valeur numérique 2. Parce que l’instruction ne spécifie pas d’*échelle*, l’*échelle* par défaut est 0 et le résultat de la conversion n’inclut pas les chiffres après la virgule. Etant donné que .5 est à mi-chemin entre 1 et 2, le résultat de la conversion est arrondi à la valeur pair de 2.

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

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

L’exemple suivant convertit la chaîne d’*expression* en entrée 2.51 en valeur numérique 3. Parce que l’instruction ne spécifie pas d’*échelle*, la valeur d’*échelle* par défaut est 0 et le résultat de la conversion n’inclut pas les chiffres après la virgule. Étant donné que .51 est plus proche de 3 que 2, le résultat de la conversion est arrondi à la valeur de 3.

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

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

L’exemple suivant convertit la chaîne d’*expression* en entrée 123.52501 avec une *précision* de 10 et une *échelle* de 2 en valeur numérique 123,53. 

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

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

L’exemple suivant convertit la chaîne d’*expression* en entrée 123\$1 avec la phrase *format* 999S en nombre 1230. Le caractère S indique une « Signed Zoned Decimal ». Pour de plus amples informations, veuillez consulter [Caractères de formatage de type Teradata pour les données numériques](r_Numeric-format-teradata.md).

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

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

L'exemple suivant convertit la chaîne d'*expression* d'entrée « USD123 » avec la phrase de *format* « C9 (I) » en 124 numérique. Consultez [Caractères de formatage de type Teradata pour les données numériques](r_Numeric-format-teradata.md).

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

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

L’exemple suivant spécifie une colonne de table comme étant l’*expression* en entrée.

```
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
```

Voici la définition de la table et l’instruction insert pour cet exemple.

```
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');
```