Try to use PLS_INTEGER instead of NUMBER for arithmetic operations with integer values (no decimal point).
PLS_INTEGER has a length of -2,147,484,648 to 2,147,484,648 , on a 32 bit system.
There are many reasons to use PLS_INTEGER instead of NUMBER:
- PLS_INTEGER uses less memory
- PLS_INTEGER uses machine arithmetic, which is up to three times faster than library arithmetic which is used by NUMBER.