Table Oracle PLSQL Tutorial

You can only decrease the precision of a numeric column if there are no rows in the table or the column contains null values.

SQL> -- create demo table
SQL> create table Employee(
  2    ID                 VARCHAR2(4 BYTE)         NOT NULL,
  3    First_Name         VARCHAR2(10 BYTE),
  4    Last_Name          VARCHAR2(10 BYTE),
  5    Start_Date         DATE,
  6    End_Date           DATE,
  7    Salary             Number(8,2),
  8    City               VARCHAR2(10 BYTE),
  9    Description        VARCHAR2(15 BYTE)
 10  )
 11  /
Table created.
SQL>
SQL> -- display data in the table
SQL> select * from Employee
  2  /
no rows selected
SQL>
SQL> desc employee;
 Name                      Null?    Type
 --------------------------
 ID                        NOT NULL VARCHAR2(4)
 FIRST_NAME                         VARCHAR2(10)
 LAST_NAME                          VARCHAR2(10)
 START_DATE                         DATE
 END_DATE                           DATE
 SALARY                             NUMBER(8,2)
 CITY                               VARCHAR2(10)
 DESCRIPTION                        VARCHAR2(15)
SQL>
SQL> ALTER TABLE employee
  2  MODIFY salary NUMBER(2,2);
Table altered.
SQL>
SQL> desc employee;
 Name              Null?    Type
 ------------------
 ID                NOT NULL VARCHAR2(4)
 FIRST_NAME                 VARCHAR2(10)
 LAST_NAME                  VARCHAR2(10)
 START_DATE                 DATE
 END_DATE                   DATE
 SALARY                     NUMBER(2,2)
 CITY                       VARCHAR2(10)
 DESCRIPTION                VARCHAR2(15)
SQL>
SQL> select * from employee;
no rows selected
SQL>
SQL> -- clean the table
SQL> drop table Employee
  2  /
Table dropped.
SQL>