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 ?