Categorias:

Funções de dados semiestruturados e estruturados (Conversão)

AS_DECIMAL , AS_NUMBER

Converte um valor de VARIANT em um valor de ponto fixo de NUMBER, com precisão e escala opcionais. Essa função não converte valores de ponto flutuante.

AS_DECIMAL é um sinônimo de AS_NUMBER.

O tipo de dados DECIMAL é sinônimo do tipo de dados NUMBER.

Consulte também:

AS_<tipo_de_objeto> , AS_DOUBLE , AS_REAL , AS_INTEGER

Sintaxe

AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )

AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
Copy

Argumentos

variant_expr

Uma expressão que avalia como um valor do tipo VARIANT.

precision

O número de dígitos significativos do número decimal a armazenar.

O padrão é 38.

scale

O número de dígitos significativos após o ponto decimal.

O padrão é 0.

Retornos

A função retorna um valor do tipo NUMBER ou NULL:

  • Se o tipo do valor no argumento variant_expr for DECIMAL ou NUMBER, a função retornará um valor do tipo NUMBER.

  • Se o tipo do valor no argumento variant_expr não corresponder ao tipo do valor de saída, a função retornará NULL.

  • Se o argumento variant_expr for NULL, a função retornará NULL.

Notas de uso

Ao reduzir a escala, essa função arredonda o resultado, o que pode causar erros fora do intervalo.

Exemplos

Criar uma tabela e carregar dados nela:

CREATE OR REPLACE TABLE as_number_example (number1 VARIANT);

INSERT INTO as_number_example (number1)
  SELECT TO_VARIANT(TO_NUMBER(2.34, 6, 3));
Copy

Use a função AS_NUMBER em uma consulta para converter um valor VARIANT em um valor NUMBER:

SELECT AS_NUMBER(number1, 6, 3) number_value
  FROM as_number_example;
Copy
+--------------+
| NUMBER_VALUE |
|--------------|
|        2.340 |
+--------------+