Oracle
 sql >> Database >  >> RDS >> Oracle

Come simulare l'overflow di interi con segno a 32 bit in PL/SQL?

Alla fine ho trovato un modo per farlo. Diciamo N è un valore di tipo NUMBER e devi simulare in qualche modo un overflow di interi con segno a 32 bit, quindi:

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