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;