在ORACLE中给已有数据的表增加、修改、删除一个字段(或一个列)或者多个字段(或多个列)的问题

使用数据库为Oracle

因为在将数据从历史表导入当前表时,因字段个数不对,导致不能导数据。

一、将历史表的字段增加一个或者多个的SQL语句。

1、增加一个字段:(增加字段时,只能排在已有字段的后面,不能插到已有字段之间)

Alter Table t_app_si_addr_12 Add CHG_ADDR_FLAG varchar2(2);

Alter Table 表名 Add 字段名称  字段类型;

2、增加两个字段;

Alter Table t_app_si_addr_12 Add (CHG_ADDR_FLAG varchar2(2),ADD_IP_BY_IOM Varchar2(2));

Alter Table 表名 Add (字段名称  字段类型,字段名称  字段类型);

注意:在SQL server中增加多个字段,不需要加括号。

二、修改一个字段:

create table t_od_test1017(id number(2),name varchar2(4),test varchar2(10));
select a.*,a.rowid from t_od_test1017 a;
1、修改字段的类型或长度:

alter table t_od_test1017 modify (test3 number(32));--修改字段类型或长度。

Alter Table 表名  modify (字段名称  (新的)字段类型);

注意:当此列有数据时,不能将字段的长度减小,只能增加长度。

2、修改字段的名称:
alter table t_od_test1017 rename column  test3 to  new_test3;

Alter Table 表名 rename  column (旧的)字段名称  to (新的)字段名称;

在SQL server中,以上语句不行,已经实测。

正确的命令是:exec sp_rename '[BB].[OldCol]','NewCol' 

-- 注意逗号后面,没有表名,没有点号,没有方括号,执行这句,才能得到你想要的结果“NewCol”,

三、删除一个字段:

alter table t_od_test1017 drop column test2;

alter table t_od_test1017 drop column 字段名称;

注意:删除字段时候,保证此字段下没有数据。

猜你喜欢

转载自blog.csdn.net/lanxingbudui/article/details/78049998