sql >> Databasteknik >  >> RDS >> Oracle

Hur simulerar man 32-bitars signerat heltalsspill i PL/SQL?

Jag hittade äntligen ett sätt att göra det. Låt säga N är ett värde av typen NUMBER , och du måste på något sätt simulera ett 32-bitars signerat heltalsspill, då:

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


  1. Anropa en set-returnerande funktion med ett arrayargument flera gånger

  2. Hur ändrar man nummer(7,2) till varchar i oracle?

  3. Hitta orsaken till dödlägesfel från oracle trace-fil

  4. SQL Server ARITHABORT