

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de 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 executa uma operação de conversão no estilo Teradata para converter uma string de caracteres em um formato de dados numérico. 

## Sintaxe
<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>

 *expressão*   
Uma expressão que avalia um ou mais valores CHAR ou VARCHAR, como um nome de coluna ou literal. A conversão de valores nulos retorna nulos. As cadeias em branco ou vazias são convertidas em 0. 

 *formato*   
Um literal de string que define o formato da expressão de entrada. Para obter mais informações, consulte [Caracteres de formatação de estilo Teradata para dados numéricos](r_Numeric-format-teradata.md). 

 *precisão*   
O número de dígitos no resultado numérico. O padrão é 38. 

 *scale*   
O número de dígitos à direita do separador decimal no resultado numérico. O padrão é 0. 

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

TEXT\$1TO\$1NUMERIC\$1ALT retorna um número DECIMAL.

O Amazon Redshift retorna um erro se a conversão para a frase de *format* que você especificar não for bem-sucedida.

O Amazon Redshift lança a string da *expressão* de entrada para o tipo numérico com a precisão mais alta que você especificar para esse tipo na opção *precisão*. Se o comprimento do valor numérico exceder o valor especificado para *precisão*, o Amazon Redshift arredonda o valor numérico de acordo com as seguintes regras:
+ Se o comprimento do resultado de conversão exceder o comprimento especificado na frase de *format*, o Amazon Redshift retorna um erro.
+ Se o resultado for convertido em um valor numérico, o resultado será arredondado para o valor mais próximo. Se a porção fracionada estiver exatamente a meio caminho entre o resultado de elenco superior e inferior, o resultado será arredondado para o valor par mais próximo.

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

O exemplo a seguir converte a string da *expressão* de entrada “1.5” para o valor numérico “2”. Como a declaração não especifica a *escala*, o padrão da *escala* é 0 e o resultado da conversão não inclui um resultado de fração. Como .5 está no meio do caminho entre 1 e 2, o resultado da conversão é arredondado para o valor par de 2.

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

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

O exemplo a seguir converte a string da *expressão* de entrada '2.51' para o valor numérico 3. Como a declaração não especifica o valor da *escala*, o padrão da *escala* é 0 e o resultado da conversão não inclui um resultado de fração. Como 0,51 está mais próximo de 3 do que 2, o resultado da conversão é arredondado para o valor de 3.

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

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

O exemplo a seguir converte a string da *expressão* de entrada 123.52501 com uma *precisão* de 10 e uma *escala* de 2 para o valor numérico 123,53. 

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

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

O exemplo a seguir converte a string da *expressão* de entrada “123\$1“ com a frase de *formato* “999S” no numérico 1230. O caractere S indica um Decimal com zona assinada. Para obter mais informações, consulte [Caracteres de formatação de estilo Teradata para dados numéricos](r_Numeric-format-teradata.md).

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

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

O exemplo a seguir converte a string da *expressão* de entrada “USD123“ com a frase de *formato* “C9(I)” no numérico 124. Consulte [Caracteres de formatação de estilo Teradata para dados numéricos](r_Numeric-format-teradata.md).

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

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

O exemplo a seguir especifica uma coluna de tabela como a *expressão* 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 seguir está a definição da tabela e a instrução de inserção para este exemplo.

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