Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment simuler le débordement d'entier signé 32 bits en PL/SQL ?

J'ai enfin trouvé un moyen de le faire. Disons N est une valeur de type NUMBER , et vous devez simuler d'une manière ou d'une autre un débordement d'entier signé 32 bits, alors :

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