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