Altering CHAR(n BYTE) Column
Modifying an Existing Column Definition
  
  You must set the initialization parameter BLANK_TRIMMING=TRUE to decrease the length of a non-empty CHAR column.


SQL&gt; show parameter BLANK_TRIMMING;

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
blank_trimming               boolean     FALSE


SQL&gt; alter system set BLANK_TRIMMING=true scope=spfile;

System altered.

Then bounce the database.

SQL&gt; startup force;

SQL&gt; update tblchar set col1=TRIM(col1);

SQL&gt; alter table tblchar modify col1 char(16 byte);

Table altered.


Documentation:
Altering Tables