六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 171|回复: 0

Oracle操作的部分ddl语句

[复制链接]

升级  55%

105

主题

105

主题

105

主题

举人

Rank: 3Rank: 3

积分
365
 楼主| 发表于 2013-1-30 01:24:23 | 显示全部楼层 |阅读模式
由于最近需要程序生成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个字符
如果有遗漏,还请大家帮忙补上。。。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表