DECIMAL Tipo de dado DECIMAL

DECIMAL fornece um numérico exato onde a precisão e a escala podem ter tamanhos arbitrários. Pode ser especificada a precisão (o número total de dígitos, tanto à esquerda quanto à direita do ponto decimal), e a escala (o número de dígitos da parte fracionária). A quantidade de armazenamento necessária é baseada na precisão.

Sintaxe { DECIMAL | DEC } [(precisão [, escala ])]

A precisão deve estar entre 1 e 31. A escala deve ser menor ou igual a precisão.

Quando a escala não é especificada, é utilizado o valor padrão igual a 0. Quando a precisão não é especificada, é utilizada a precisão padrão igual a 5.

A tentativa de colocar um valor numérico em um DECIMAL é permitida, desde que a precisão não fracionária não seja perdida. Ao remover os dígitos finais do valor DECIMAL, o arredonda para baixo.

Por exemplo: -- esta conversão perde apenas a precisão fracionária VALUES CAST (1.798765 AS DECIMAL(5,2)); 1 -------- 1.79 -- esta conversão não cabe VALUES CAST (1798765 AS DECIMAL(5,2)); 1 -------- ERRO 22003: O valor resultante está fora da faixa para o tipo de dado DECIMAL/NUMERIC(5,2).

Quando misturado com outros tipos de dado nas expressões, o tipo de dado do resultado segue as regras mostradas em .

Consulte também .

Quando são misturados dois valores decimais em uma expressão, a escala e a precisão do valor resultante seguem as regras mostradas em .

Tipo Java correspondente em tempo de compilação

java.math.BigDecimal

Tipo do metadado do JDBC (java.sql.Types)

DECIMAL

VALUES 123.456 VALUES 0.001

As constantes inteiras muito grandes para BIGINT são tornadas constantes DECIMAL.