删除大表中的字段(二)
tially dropped state. Submit ALTER TABLE DROP COLUMNS CONTINUE
--必须删除结束才能访问:
[sql]
ALTER TABLE user_objects_tmp DROP COLUMNS CONTINUE;
--如果从始至终,并未终止操作,但是该操作正在执行,会发现查不到数据:
[sql]
SQL> SELECT * FROM user_objects_tmp a WHERE ROWNUM <= 10;
SQL> SELECT * FROM user_objects_tmp a WHERE ROWNUM <= 10;
SQL>
--另外:表中的字段如果设置为 UNUSED 则无法恢复,但是未DROP之前我们可以重新创建同名字段,
--而如long类型的字段,必须要DROP之后才能创建,每个表中只能有一个long类型的字段
[sql]
SQL> ALTER TABLE user_objects_tmp SET UNUSED(TIMESTAMP);
Table altered
SQL> alter table user_objects_tmp add(TIMESTAMP VARCHAR2(19));
Table altered
SQL> alter table user_objects_tmp add(long_tmp long);
Table altered
Table altered
SQL> alter table user_objects_tmp add(long_tmp long);
alter table user_objects_tmp add(long_tmp long)
ORA-01754: a table may contain only one column of type LONG
SQL> alter table drop unused columns;
alter table drop unused columns
ORA-00903: invalid table name
SQL> alter table user_objects_tmp drop unused columns;
Table altered
SQL> alter table user_objects_tmp add(long_tmp long);
Table altered
SQL> alter table user_objects_tmp add(long_tmp2 long);
alter table user_objects_tmp add(long_tmp2 long)
ORA-01754: a table may contain only one column of type LONG