Oracle modifies the Data Type of a field in three ways: 1. set this column to null and modify its type (this will result in data loss. the simplest method is to assume that your table is named tab_target create table test as select * from tab_target whre 1 = 2; alter table test modify (col_name number (5 )); insert into test select * from tab_target; drop table tab_target; www.2cto.com rename test to tab_target; 3. (idea: Rename the field name of the type to be changed to backup, add a field with the same name as the field name of the type to be changed (the original field has been renamed), and then update the data, finally, delete the renamed backup field)/* modify the original field name */alter table name rename column field name TO field name 1; /* ADD a field with the same name as the original field */alter table name ADD field name VARCHAR2 (30);/* www.2cto.com update the original data to the new field, be sure to display the data type conversion (different from MSSQL) */UPDATE table name SET field name = CAST (field name 1 AS VARCHAR2 (30 )); /* Delete the original backup field */alter table Name drop column field name 1; from jihuanliang's COLUMN