首页 > 数据库 > Oracle > set unused 列恢复
1、创建是要用表test
SQL>create table test as select table_name,tablespace_name from user_tables;
SQL>select * from test where rownum<5;
SQL>commit;
2、将tablespace_name列置为无用
SQL> alter table test set unused (tablespace_name);
SQL>select * from test where rownum<5;
3、恢复
切换管理员身份
SQL>conn sys as sysdba
查询TEST表在数据库中分配的编号
SQL> SELECT OBJ# FROM OBJ$ WHERE NAME='TEST';
SQL> SELECT COL#,INTCOL#,NAME FROM COL$ WHERE OBJ#=13251;
SQL> SELECT COLS FROM TAB$ WHERE OBJ#=13251;
SQL> UPDATE COL$ SET COL#=INTCOL# WHERE OBJ#=13251;
SQL> UPDATE TAB$ SET COLS=COLS+1 WHERE OBJ#=13251;
SQL> UPDATE COL$ SET NAME='TABLESPACE_NAME' WHERE OBJ#=13251 AND COL#=2;
SQL> UPDATE COL$ SET PROPERTY=0 WHERE OBJ#=13251;
SQL> commit;
重启数据库
SQL> shutdown immediate
SQL> startup
验证
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31545570/viewspace-2213712/ ,如需转载,请注明出处,否则将追究法律责任。