

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

TEXT\$1TO\$1NUMERIC\$1ALT realiza una operación de conversión de estilo Teradata para convertir una cadena de caracteres a un formato de datos numérico. 

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

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

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

 *expresión*   
Una expresión que toma uno o más valores CHAR o VARCHAR, como un nombre de columna o un literal. La conversión de valores nulos devuelve valores nulos. Las cadenas en blanco o vacías se convierten a 0. 

 *format*   
Un literal de cadena que define el formato de la expresión de entrada. Para obtener más información, consulte [Caracteres de formato de estilo Teradata para datos numéricos](r_Numeric-format-teradata.md). 

 *precisión*   
La cantidad de dígitos en el resultado numérico. El valor predeterminado es 38. 

 *scale*   
La cantidad de dígitos a la derecha de la coma decimal en el resultado numérico. El valor predeterminado es 0. 

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

TEXT\$1TO\$1NUMERIC\$1ALT devuelve un número DECIMAL.

Amazon Redshift devuelve un error si la conversión a la frase de *formato* que se especifica no consigue resultados correctos.

Amazon Redshift convierte la cadena de *expresión* de entrada al tipo numérico con la mayor precisión que especifique para ese tipo en la opción de *precisión*. Si la longitud del valor numérico supera el valor especificado para la *precisión*, Amazon Redshift redondea el valor numérico de acuerdo con las siguientes reglas:
+ Si la longitud del resultado de conversión excede la longitud especificada en la frase de *formato*, Amazon Redshift devuelve un error.
+ Si el resultado se convierte en un valor numérico, se redondea al valor más cercano. Si la parte de fracción está exactamente a la mitad del resultado de la conversión superior y la inferior, el resultado se redondea al valor par más cercano.

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

En el siguiente ejemplo, se convierte la cadena de *expresión* de entrada '1,5' al valor numérico '2'. Debido a que la instrucción no especifica la *escala*, la *escala* adopta el valor predeterminado 0 y el resultado de la conversión no incluye el resultado de una fracción. Como ,5 está a la mitad de 1 y 2, el resultado de la conversión se redondea al valor par de 2.

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

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

En el siguiente ejemplo, se convierte la cadena de *expresión* de entrada '2,51' al valor numérico 3. Debido a que la instrucción no especifica un valor de *escala*, la *escala* adopta el valor predeterminado 0 y el resultado de la conversión no incluye el resultado de una fracción. Como ,51 está más cerca de 3 que de 2, el resultado de la conversión se redondea al valor de 3.

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

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

En el siguiente ejemplo, se convierte la cadena de *expresión* de entrada 123,52501 con una *precisión* de 10 y una *escala* de 2 al valor numérico 123,53. 

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

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

En el siguiente ejemplo, se convierte la cadena de *expresión* de entrada "123\$1" con la frase de *formato* "999S" al valor numérico 1230. El carácter S indica un decimal zonificado firmado. Para obtener más información, consulte [Caracteres de formato de estilo Teradata para datos numéricos](r_Numeric-format-teradata.md).

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

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

En el siguiente ejemplo, se convierte la cadena de *expresión* de entrada "USD123" con la frase de *formato* "C9(I)" al valor numérico 124. Consulte [Caracteres de formato de estilo Teradata para datos numéricos](r_Numeric-format-teradata.md).

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

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

En el siguiente ejemplo, se especifica la columna de una tabla como la *expresión* de entrada.

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

A continuación, se presenta la definición de la tabla y la instrucción de inserción para este ejemplo.

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