1、删除列
03:44:40 SQL> create table test as select * from emp;
Table created.
03:45:06 SQL> desc test;
Name Null Type
---------------------------------------------------------------------- -------- -----------------
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
03:45:10 SQL> alter table test drop column comm;
Table altered.
03:45:26 SQL> desc test;
Name Null Type
---------------------------------------------------------------------- -------- -----------------
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
DEPTNO NUMBER(2)
03:45:28 SQL> alter table test drop (sal,hiredate);
Table altered.
03:45:54 SQL> desc test;
Name Null Type
---------------------------------------------------------------------- -------- -----------------
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
DEPTNO NUMBER(2)
2、使用unused 删除列
将列标记为UNUSED,然后再数据库空闲时删除列
03:48:40 SQL> alter table test set unused column mgr;
Table altered.
03:49:03 SQL> desc test;
Name Null Type
---------------------------------------------------------------------- -------- -----------------
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
DEPTNO NUMBER(2)
03:49:04 SQL> alter table emp drop unused columns checkpoint 1000;
Table altered.
03:49:26 SQL>
Checkpoint 1000 用于指定每删除1000行发出一次检查点。
总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089
中国UNIX用户协会 Copyright 2010 ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号 京公网安备110108006275号