Table Oracle PLSQL Tutorial

You can only decrease the length of a column if there are no rows in the table or all the columns contain null values.

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 first_name VARCHAR2(3);
Table altered.
SQL>
SQL> desc employee;
 Name             Null?    Type
 -----------------------------
 ID               NOT NULL VARCHAR2(4)
 FIRST_NAME                VARCHAR2(3)
 LAST_NAME                 VARCHAR2(10)
 START_DATE                DATE
 END_DATE                  DATE
 SALARY                    NUMBER(8,2)
 CITY                      VARCHAR2(10)
 DESCRIPTION               VARCHAR2(15)
SQL>
SQL> select * from Employee
  2  /
no rows selected
SQL>
SQL> -- clean the table
SQL> drop table Employee
  2  /
Table dropped.
SQL>