Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie simuliert man einen 32-Bit-Ganzzahlüberlauf mit Vorzeichen in PL/SQL?

Ich habe endlich einen Weg gefunden, das zu tun. Sagen wir N ist ein Wert vom Typ NUMBER , und Sie müssen irgendwie einen 32-Bit-Ganzzahlüberlauf mit Vorzeichen simulieren, dann:

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