由于最近需要程序生成ddl,修改oracle数据库的库表,因此我总结了一下修改oracle库表的情况,总结如下: 1、新增一列:alter tab
由于最近需要程序生成ddl,修改oracle数据库的库表,,因此我总结了一下修改oracle库表的情况,总结如下:
1、新增一列:alter table table_name add (column_name varchar2(33 , 2) default '2' not null)
2、删除一列:alter table table_name drop column column_name
3、修改数据类型:
有数据:ora-01439: 要更改数据类型,则要修改的列必须为空 (empty)
无数据:alter table table_name modify (column_name number(222,2))
4、修改默认值:
数据类型一致:alter table table_name modify (column_name default newvlaue)
数据类型不一致:ora-02262: 对列默认值表达式进行类型检查时, 出现 ora-932
5、修改nullable:
将null修改为not null时:
存在空值:ora-02296: 无法启用 (table_name) - 找到空值
不存在空值:alter table table_name modify (column_name not null)
将not null 修改为null时: alter table table_name modify (column_name null)
6、修改字段名:
名称符合: alter table table_name rename column old_column_name to new_column_name
名称不符合:ora-00904: : 无效的标识符
7、修改表名:
名称符合: alter table table_name rename to new_table_name;
名称不符合: ora-00903: 表名无效
8、修改字段长度:
数据中存在长度大于新值时: ora-01441: 无法减小列长度, 因为一些值过大
符合条件: alter table table_name modify (column_name varchar2(newlength))
注意:oracle对于表名和字段名的限制为:
1、要以字母开头
2、包含字母和数字,以及# $
3、不能超过30个字符