您知道如何在 Oracle PL/SQL 中模拟 32 位整数溢出吗?
例如,
2147483647 + 1 = -2147483648
or
-2147483648 - 1 = 212147483647
我尝试了 PLS_INTEGER,但它引发了溢出异常。
我终于找到了一种方法来做到这一点。让我们说N
是一个类型的值NUMBER
,并且您需要以某种方式模拟 32 位有符号整数溢出,然后:
N := MOD(N, 4294967296);
IF N > 2147483647
THEN
N := N - 4294967296;
ELSIF N < -2147483648
THEN
N := N + 4294967296;
END IF;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)