sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo simular un desbordamiento de enteros con signo de 32 bits en PL/SQL?

Finalmente encontré una manera de hacer eso. Digamos N es un valor de tipo NUMBER , y necesita simular de alguna manera un desbordamiento de enteros con signo de 32 bits, entonces:

N := MOD(N, 4294967296);
IF N > 2147483647
THEN
    N := N - 4294967296;
ELSIF N < -2147483648
THEN
    N := N + 4294967296;
END IF;