具体的列名查不到,关键是Oracle会将基表中的信息改变,如下所示
SQL> conn system/manager
Connected.
SQL>
SQL> create table system_t(a number,b number);
Table created.
SQL>
SQL> conn / as sysdba
Connected.
SQL>
SQL> select obj#
2 from obj$
3 where name='SYSTEM_T';
OBJ#
----------
42574
SQL>
SQL> select name from col$ where obj#=42574;
NAME
------------------------------
A
B
SQL>
SQL> select * from dba_unused_col_tabs;
no rows selected
SQL>
SQL> select * from dba_partial_drop_tabs;
no rows selected
SQL>
SQL> conn system/manager
Connected.
SQL>
SQL> alter session set nls_date_format='yyyy-mm-dd hh:mi:ss';
Session altered.
SQL>
SQL> select sysdate from dual;
SYSDATE
-------------------
2004-05-13 10:28:08
SQL>
SQL> ALTER TABLE system_t
2 SET UNUSED COLUMN b;
Table altered.
SQL>
SQL> conn / as sysdba
Connected.
SQL>
SQL> select * from dba_unused_col_tabs;
OWNER TABLE_NAME COUNT
------------------------------ ------------------------------ ----------
SYSTEM SYSTEM_T 1
SQL>
SQL> select * from dba_partial_drop_tabs;
no rows selected
SQL>
SQL> select name from col$ where obj#=42574;
NAME
------------------------------
A
SYS_C00002_04051310:28:08$
SQL>
SQL> desc system.system_t
Name Null? Type
----------------------------------------- -------- ----------------------------
A NUMBER
SQL>
SQL> drop table system.system_t;
Table dropped.
SQL>