Please see these two scenarios :
Case 1:
DECLARE
p1 PLS_INTEGER := 2147483647;
p2 INTEGER := 1;
n NUMBER;
BEGIN
n := p1 + p2;
END;
PL/SQL procedure successfully completed.
Case 2
DECLARE
p1 PLS_INTEGER := 2147483647;
p2 PLS_INTEGER := 1;
n NUMBER;
BEGIN
n := p1 + p2;
END;
Error at line 1
ORA-01426: numeric overflow
ORA-06512: at line 6
Why does case 2 failed, even I was trying to add same data type whereas case 1 executes successfully ?