DIV0 e DIV0NULL: alteração nos resultados que excedem a escala de saída

Atenção

Essa mudança de comportamento está no pacote 2023_08.

Para saber o status atual do pacote, consulte Histórico do pacote.

Para as funções DIV0 e DIV0NULL, quando o resultado da operação de divisão excede a escala de saída:

Antes da mudança:

DIV0 e DIV0NULL truncam a saída.

Isso é inconsistente com os resultados do uso do operador de divisão (/).

Após a mudança:

DIV0 e DIV0NULL arredondam a saída para cima.

Isso é consistente com os resultados do uso do operador de divisão (/).

Por exemplo, suponha que você esteja dividindo 5 por 9:

SELECT DIV0(5, 9), DIV0NULL(5, 9), 5/9;
Copy
Antes da mudança:

DIV0 e DIV0NULL truncam o resultado para 0,555555, enquanto o operador de divisão arredonda o resultado para 0,555556.

+------------+----------------+----------+
| DIV0(5, 9) | DIV0NULL(5, 9) |      5/9 |
|------------+----------------+----------|
|   0.555555 |       0.555555 | 0.555556 |
+------------+----------------+----------+
Após a mudança:

DIV0, DIV0NULL e o operador de divisão arredondam o resultado para 0,555556.

+------------+----------------+----------+
| DIV0(5, 9) | DIV0NULL(5, 9) |      5/9 |
|------------+----------------+----------|
|   0.555556 |       0.555556 | 0.555556 |
+------------+----------------+----------+

Além disso, passar mais de dois argumentos para as funções DIV0 e DIV0NULL resulta em uma exceção.

Antes da mudança:

Embora as funções DIV0 e DIV0NULL suportem apenas dois argumentos, você pode passar argumentos adicionais.

As funções ignoram os argumentos adicionais.

Após a mudança:

Passar mais de dois argumentos para as funções DIV0 e DIV0NULL resulta na seguinte exceção:

000939 (22023): SQL compilation error: ...
  too many arguments for function [DIV0] expected 2, got 3

Ref: 1400