Creating a column as INTEGER is an alias for NUMBER(38). That means a NUMBER with variable "whole" number and precision up to 38 significant digits
In sqlplus it is a "display" thing... It is not clear to me what it is you are trying to achieve.
Hi, it's ok: With OCI describe API we could distinguish INTEGER/NUMBER(38) (where precision=38 and scale=0) from numeric expression results (where precision=0 and scale=0).
The fact is that an expression involving INTEGER/NUMBER(38) like SUM(integer_col) will also be described with precision=0 / scale=0 so it's not possible to distinguish SUM(integer_col) from SUM(decimal_col) where decimal_col is defined as NUMBER(10,2) for ex.