有一个表名为fva_voucherType,字段段名为fid,数据类型number。
一共有三种情况,分别为:
1、字段数据为空:
alter table fva_voucherType modify (fid varchar2(32));
2、字段有数据,改为varchar2(32):
alter table fva_voucherType modify (fid varchar2(32));
3、字段有数据,修改时弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”:
/*修改原字段名fid为fid_tmp*/
alter table rename column fid to fid_tmp;
/*增加一个和原字段名同名的字段fid*/
alter table fva_voucherType add fid varchar2(40);
/*将原字段fid_tmp数据更新到增加的字段fid*/
update fva_voucherType setfid=trim(fid_tmp);
/*更新完,删除原字段fid_tmp*/
alter table fva_voucherType drop columnfid_tmp;
一共有三种情况,分别为:
1、字段数据为空:
alter table fva_voucherType modify (fid varchar2(32));
2、字段有数据,改为varchar2(32):
alter table fva_voucherType modify (fid varchar2(32));
3、字段有数据,修改时弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”:
/*修改原字段名fid为fid_tmp*/
alter table rename column fid to fid_tmp;
/*增加一个和原字段名同名的字段fid*/
alter table fva_voucherType add fid varchar2(40);
/*将原字段fid_tmp数据更新到增加的字段fid*/
update fva_voucherType setfid=trim(fid_tmp);
/*更新完,删除原字段fid_tmp*/
alter table fva_voucherType drop columnfid_tmp;
修改主键方法
1查询主键名称
SELECT * from user_cons_columns c where c.table_name = '表名';2删除主键
alter table 表名 drop constraint 主键名;3增加主键
alter table 表名 add constraint 主键名 primary key(字段名);