Drop unused columns--3--非官方方法--慎用!!

以下测试环境为: ORACLE 10.2.0.5

因为方法是修改数据字典,主要的命令是(试验环境或者自己玩玩):

注意:9i和10g的方法略有细小区别,11g的还没有测试。。。

update col$ set col#=segcol# where obj#=12068;
update col$ set property=0 where obj#=12068;

因此,这种还原set unused columns的方法及其他方法均非官方支持,生产及重要环境慎用!!记住,官方的说法:

you cannot roll back the results of this clause. That is, you cannot issueSET USED counterpart to retrieve a column that you haveSET UNUSED.

 

[oracle@rh1 udump]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Wed Aug 1 05:12:55 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> select obj# from obj$ where name='LUNAR_TEST' order by obj#;

      OBJ#
----------
     12069
     12070
     12071
     12072
     12073
     12068

6 rows selected.

SQL>
SQL> l
  1* select * from obj$ where name='LUNAR_TEST'
SQL> /

      OBJ#   DATAOBJ#     OWNER# NAME                            NAMESPACE SUBNAME                             TYPE# CTIME
---------- ---------- ---------- ------------------------------ ---------- ------------------------------ ---------- ------------
MTIME        STIME            STATUS REMOTEOWNER
------------ ------------ ---------- ------------------------------
LINKNAME
--------------------------------------------------------------------------------------------------------------------------------
     FLAGS OID$                                 SPARE1     SPARE2     SPARE3
---------- -------------------------------- ---------- ---------- ----------
SPARE4
---------------------------------------------------------------------------------------------------------------------------------
SPARE5
---------------------------------------------------------------------------------------------------------------------------------
SPARE6
------------
     12069      12069         31 LUNAR_TEST                              1 PART_1                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1

         0                                           6      65535

 


     12070      12070         31 LUNAR_TEST                              1 PART_2                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1

         0                                           6      65535

 


     12071      12071         31 LUNAR_TEST                              1 PART_3                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1

         0                                           6      65535

 


     12072      12072         31 LUNAR_TEST                              1 PART_4                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1

         0                                           6      65535

 


     12073      12073         31 LUNAR_TEST                              1 PART_5                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1

         0                                           6      65535

 


     12068                    31 LUNAR_TEST                              1                                         2 01-AUG-12
01-AUG-12    01-AUG-12             1

         0                                           6          3

 

 

6 rows selected.

SQL>


05:16:38 SQL> show user
USER is "LUNAR"
05:16:55 SQL>
05:18:00 SQL> set pages 999
05:18:15 SQL> col object_name for a30
05:18:56 SQL> col SUBOBJECT_NAME for a15
05:19:03 SQL>05:21:38 SQL> select object_name, subobject_name,object_id from user_objects order by object_id;

OBJECT_NAME                    SUBOBJECT_NAME   OBJECT_ID
------------------------------ --------------- ----------
FQ_TEST                                             12048
FQ_TEST                        PART_1               12049
FQ_TEST                        PART_2               12050
FQ_TEST                        PART_3               12051
FQ_TEST                        PART_4               12052
FQ_TEST                        PART_5               12053
BIN$xidZPgfBjs/gQKjACwogqg==$0 PART_1               12055
BIN$xidZPgfBjs/gQKjACwogqg==$0 PART_2               12056
BIN$xidZPgfBjs/gQKjACwogqg==$0 PART_3               12057
BIN$xidZPgfBjs/gQKjACwogqg==$0 PART_4               12058
BIN$xidZPgfBjs/gQKjACwogqg==$0 PART_5               12059
FQ_TEST2                                            12061
FQ_TEST2                       PART_1               12062
FQ_TEST2                       PART_2               12063
FQ_TEST2                       PART_3               12064
FQ_TEST2                       PART_4               12065
FQ_TEST2                       PART_5               12066
FQ_TEST_PART_2                                      12067
LUNAR_TEST                                          12068
LUNAR_TEST                     PART_1               12069
LUNAR_TEST                     PART_2               12070
LUNAR_TEST                     PART_3               12071
LUNAR_TEST                     PART_4               12072
LUNAR_TEST                     PART_5               12073
LUNAR_TEST2                                         12074
LUNAR_TEST2                    PART_1               12075
LUNAR_TEST2                    PART_2               12076
LUNAR_TEST2                    PART_3               12077
LUNAR_TEST2                    PART_4               12078
LUNAR_TEST2                    PART_5               12079
LUNAR_TEST_PART_2                                   12080

31 rows selected.

Elapsed: 00:00:00.03
05:21:41 SQL>

SQL> select cols from tab$ where obj#='12068';

      COLS
----------
         7

SQL> select cols from tab$ where obj#='12069';

no rows selected

SQL>
SQL> col SPARE4 for a15
SQL> col SPARE5 for a15
SQL> col AUDIT$ for a5
SQL> select * from tab$ where obj#='12068';

      OBJ#   DATAOBJ#        TS#      FILE#     BLOCK#      BOBJ#       TAB#       COLS    CLUCOLS   PCTFREE$   PCTUSED$
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  INITRANS   MAXTRANS      FLAGS AUDIT     ROWCNT     BLKCNT     EMPCNT     AVGSPC     CHNCNT     AVGRLN AVGSPC_FLB     FLBCNT
---------- ---------- ---------- ----- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
ANALYZETIME  SAMPLESIZE     DEGREE  INSTANCES    INTCOLS KERNELCOLS   PROPERTY   TRIGFLAG     SPARE1     SPARE2     SPARE3
------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
SPARE4          SPARE5          SPARE6
--------------- --------------- ------------
     12068                     0          0          0                                7                     0          0
         0          0 1073741825 -----
                                 -----
                                 -----
                                 -----
                                 -----
                                 -----
                                 -----
                                 ---
                                                       9          9  537395232          0        736
                                01-AUG-12


SQL>

SQL> col LINKNAME for a10
SQL> l
  1* select obj#,SUBNAME,LINKNAME,FLAGS,OID$ from obj$ where name='LUNAR_TEST'
SQL> /

      OBJ# SUBNAME                        LINKNAME        FLAGS OID$
---------- ------------------------------ ---------- ---------- --------------------------------
     12069 PART_1                                             0
     12070 PART_2                                             0
     12071 PART_3                                             0
     12072 PART_4                                             0
     12073 PART_5                                             0
     12068                                                    0

6 rows selected.

SQL>


05:41:12 SQL> select object_name, subobject_name,object_id from user_objects where object_name='LUNAR_10GTEST' order by object_id;

OBJECT_NAME                    SUBOBJECT_NAME   OBJECT_ID
------------------------------ --------------- ----------
LUNAR_10GTEST                                       12082
LUNAR_10GTEST                  PART_1               12083
LUNAR_10GTEST                  PART_2               12084
LUNAR_10GTEST                  PART_3               12085
LUNAR_10GTEST                  PART_4               12086
LUNAR_10GTEST                  PART_5               12087

6 rows selected.

Elapsed: 00:00:00.00
05:41:47 SQL>
SQL> select obj#,SUBNAME,LINKNAME,FLAGS,OID$ from obj$ where name='LUNAR_10GTEST';

      OBJ# SUBNAME                        LINKNAME        FLAGS OID$
---------- ------------------------------ ---------- ---------- --------------------------------
     12083 PART_1                                             0
     12084 PART_2                                             0
     12085 PART_3                                             0
     12086 PART_4                                             0
     12087 PART_5                                             0
     12082                                                    0

6 rows selected.

SQL>

select * from tab$ where obj#='12068';  --有2个unused 列
select * from tab$ where obj#='12082';  --没有unused 列

SQL> select * from tab$ where obj#='12068';

      OBJ#   DATAOBJ#        TS#      FILE#     BLOCK#      BOBJ#       TAB#       COLS    CLUCOLS   PCTFREE$   PCTUSED$
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  INITRANS   MAXTRANS      FLAGS AUDIT     ROWCNT     BLKCNT     EMPCNT     AVGSPC     CHNCNT     AVGRLN AVGSPC_FLB     FLBCNT
---------- ---------- ---------- ----- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
ANALYZETIME  SAMPLESIZE     DEGREE  INSTANCES    INTCOLS KERNELCOLS   PROPERTY   TRIGFLAG     SPARE1     SPARE2     SPARE3
------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
SPARE4          SPARE5          SPARE6
--------------- --------------- ------------
     12068                     0          0          0                                7                     0          0
         0          0 1073741825 -----
                                 -----
                                 -----
                                 -----
                                 -----
                                 -----
                                 -----
                                 ---
                                                       9          9  537395232          0        736
                                01-AUG-12


SQL>
SQL> select * from tab$ where obj#='12082';

      OBJ#   DATAOBJ#        TS#      FILE#     BLOCK#      BOBJ#       TAB#       COLS    CLUCOLS   PCTFREE$   PCTUSED$
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  INITRANS   MAXTRANS      FLAGS AUDIT     ROWCNT     BLKCNT     EMPCNT     AVGSPC     CHNCNT     AVGRLN AVGSPC_FLB     FLBCNT
---------- ---------- ---------- ----- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
ANALYZETIME  SAMPLESIZE     DEGREE  INSTANCES    INTCOLS KERNELCOLS   PROPERTY   TRIGFLAG     SPARE1     SPARE2     SPARE3
------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
SPARE4          SPARE5          SPARE6
--------------- --------------- ------------
     12082                     0          0          0                                9                     0          0
         0          0 1073741825 -----
                                 -----
                                 -----
                                 -----
                                 -----
                                 -----
                                 -----
                                 ---
                                                       9          9  536870944          0        736
                                01-AUG-12


SQL>


select * from obj$ where name='LUNAR_TEST';   --有2个unused 列
select * from obj$ where name='LUNAR_10GTEST';  --没有unused 列

SQL> select * from obj$ where name='LUNAR_TEST';

      OBJ#   DATAOBJ#     OWNER# NAME                            NAMESPACE SUBNAME                             TYPE# CTIME
---------- ---------- ---------- ------------------------------ ---------- ------------------------------ ---------- ------------
MTIME        STIME            STATUS REMOTEOWNER                    LINKNAME        FLAGS OID$
------------ ------------ ---------- ------------------------------ ---------- ---------- --------------------------------
    SPARE1     SPARE2     SPARE3 SPARE4          SPARE5          SPARE6
---------- ---------- ---------- --------------- --------------- ------------
     12069      12069         31 LUNAR_TEST                              1 PART_1                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12070      12070         31 LUNAR_TEST                              1 PART_2                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12071      12071         31 LUNAR_TEST                              1 PART_3                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12072      12072         31 LUNAR_TEST                              1 PART_4                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12073      12073         31 LUNAR_TEST                              1 PART_5                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12068                    31 LUNAR_TEST                              1                                         2 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6          3


6 rows selected.

SQL>
SQL>
SQL>
SQL> select * from obj$ where name='LUNAR_10GTEST';

      OBJ#   DATAOBJ#     OWNER# NAME                            NAMESPACE SUBNAME                             TYPE# CTIME
---------- ---------- ---------- ------------------------------ ---------- ------------------------------ ---------- ------------
MTIME        STIME            STATUS REMOTEOWNER                    LINKNAME        FLAGS OID$
------------ ------------ ---------- ------------------------------ ---------- ---------- --------------------------------
    SPARE1     SPARE2     SPARE3 SPARE4          SPARE5          SPARE6
---------- ---------- ---------- --------------- --------------- ------------
     12083      12083         31 LUNAR_10GTEST                           1 PART_1                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12084      12084         31 LUNAR_10GTEST                           1 PART_2                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12085      12085         31 LUNAR_10GTEST                           1 PART_3                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12086      12086         31 LUNAR_10GTEST                           1 PART_4                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12087      12087         31 LUNAR_10GTEST                           1 PART_5                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535

     12082                    31 LUNAR_10GTEST                           1                                         2 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6          1


6 rows selected.

SQL>
SQL>

select * from obj$ where obj#='12069';  --被设置为unused 列
select * from obj$ where obj#='12083';  --没有没设置为unused 列

SQL> select * from obj$ where obj#='12069';

      OBJ#   DATAOBJ#     OWNER# NAME                            NAMESPACE SUBNAME                             TYPE# CTIME
---------- ---------- ---------- ------------------------------ ---------- ------------------------------ ---------- ------------
MTIME        STIME            STATUS REMOTEOWNER                    LINKNAME        FLAGS OID$
------------ ------------ ---------- ------------------------------ ---------- ---------- --------------------------------
    SPARE1     SPARE2     SPARE3 SPARE4          SPARE5          SPARE6
---------- ---------- ---------- --------------- --------------- ------------
     12069      12069         31 LUNAR_TEST                              1 PART_1                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535


SQL> select * from obj$ where obj#='12083';

      OBJ#   DATAOBJ#     OWNER# NAME                            NAMESPACE SUBNAME                             TYPE# CTIME
---------- ---------- ---------- ------------------------------ ---------- ------------------------------ ---------- ------------
MTIME        STIME            STATUS REMOTEOWNER                    LINKNAME        FLAGS OID$
------------ ------------ ---------- ------------------------------ ---------- ---------- --------------------------------
    SPARE1     SPARE2     SPARE3 SPARE4          SPARE5          SPARE6
---------- ---------- ---------- --------------- --------------- ------------
     12083      12083         31 LUNAR_10GTEST                           1 PART_1                                 19 01-AUG-12
01-AUG-12    01-AUG-12             1                                                    0
         6      65535


SQL>

SQL> update tab$ set cols=9 where obj#=12068;

1 row updated.

SQL>


SQL> update tab$ set cols=9 where obj#=12068;

1 row updated.


没有重启数据库是没有作用的:
SQL> desc lunar.LUNAR_10GTEST
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 CREATED                                                                         DATE
 GENERATED                                                                       VARCHAR2(1)
 OBJECT_TYPE                                                                     VARCHAR2(19)

SQL> desc lunar.LUNAR_TEST
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 GENERATED                                                                       VARCHAR2(1)

SQL> commit;

Commit complete.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  188743680 bytes
Fixed Size                  1272720 bytes
Variable Size             130024560 bytes
Database Buffers           54525952 bytes
Redo Buffers                2920448 bytes
Database mounted.
Database opened.
SQL> desc lunar.LUNAR_10GTEST
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 CREATED                                                                         DATE
 GENERATED                                                                       VARCHAR2(1)
 OBJECT_TYPE                                                                     VARCHAR2(19)

SQL> desc lunar.LUNAR_TEST
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 GENERATED                                                                       VARCHAR2(1)
SP2-0642: SQL*Plus internal error state 2131, context 0:0:0
Unsafe to proceed

SQL>

SQL> select obj#,name,PROPERTY from sys.col$ where obj# in (12068,12069,12083,12083);

      OBJ# NAME                             PROPERTY
---------- ------------------------------ ----------
     12068 OBJECT_ID                               0
     12068 OWNER                                   0
     12068 SUBOBJECT_NAME                          0
     12068 OBJECT_NAME                             0
     12068 STATUS                                  0
     12068 TIMESTAMP                               0
     12068 SYS_C00007_12080105:01:20$          32800
     12068 GENERATED                               0
     12068 SYS_C00009_12080105:01:22$          32800

9 rows selected

SQL>


SQL> select obj#,name,PROPERTY from sys.col$ where obj# in (12068,12069,12070,12082,12083,12084);

      OBJ# NAME                             PROPERTY
---------- ------------------------------ ----------
     12068 OBJECT_ID                               0
     12068 OWNER                                   0
     12068 SUBOBJECT_NAME                          0
     12068 OBJECT_NAME                             0
     12068 STATUS                                  0
     12068 TIMESTAMP                               0
     12068 SYS_C00007_12080105:01:20$          32800
     12068 GENERATED                               0
     12068 SYS_C00009_12080105:01:22$          32800
     12082 OBJECT_ID                               0
     12082 OWNER                                   0
     12082 SUBOBJECT_NAME                          0
     12082 OBJECT_NAME                             0
     12082 STATUS                                  0
     12082 TIMESTAMP                               0
     12082 CREATED                                 0
     12082 GENERATED                               0
     12082 OBJECT_TYPE                             0

18 rows selected

SQL>
[oracle@rh1 udump]$ sqlplus lunar/lunar

SQL*Plus: Release 10.2.0.5.0 - Production on Wed Aug 1 07:11:18 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> alter table lunar_10gtest set unused column created;
alter table lunar_10gtest set unused column object_type;

Table altered.

SQL>
Table altered.

SQL>
SQL>
SQL> select obj#,name,PROPERTY from sys.col$ where obj# in (12068,12069,12070,12082,12083,12084);

      OBJ# NAME                             PROPERTY
---------- ------------------------------ ----------
     12068 OBJECT_ID                               0
     12068 OWNER                                   0
     12068 SUBOBJECT_NAME                          0
     12068 OBJECT_NAME                             0
     12068 STATUS                                  0
     12068 TIMESTAMP                               0
     12068 SYS_C00007_12080105:01:20$          32800
     12068 GENERATED                               0
     12068 SYS_C00009_12080105:01:22$          32800
     12082 OBJECT_ID                               0
     12082 OWNER                                   0
     12082 SUBOBJECT_NAME                          0
     12082 OBJECT_NAME                             0
     12082 STATUS                                  0
     12082 TIMESTAMP                               0
     12082 SYS_C00007_12080107:11:19$          32800
     12082 GENERATED                               0
     12082 SYS_C00009_12080107:11:19$          32800

18 rows selected

SQL>

 

SQL> select * from sys.tab$ where obj#='12068';

      OBJ#   DATAOBJ#        TS#      FILE#     BLOCK#      BOBJ#       TAB#       COLS    CLUCOLS   PCTFREE$   PCTUSED$   INITRANS   MAXTRANS      FLAGS AUDIT$                                     ROWCNT     BLKCNT     EMPCNT     AVGSPC     CHNCNT     AVGRLN AVGSPC_FLB     FLBCNT ANALYZETIME SAMPLESIZE     DEGREE  INSTANCES    INTCOLS KERNELCOLS   PROPERTY   TRIGFLAG     SPARE1     SPARE2     SPARE3 SPARE4                                                                           SPARE5                                                                           SPARE6
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -------------------------------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
     12068                     0          0          0                                9                     0          0          0          0 1073741825 --------------------------------------                                                                                                                                               9          9  537395232          0        736                                                                                                                                                                                         2012/8/1 5:

SQL> select * from sys.tab$ where obj#='12082';

      OBJ#   DATAOBJ#        TS#      FILE#     BLOCK#      BOBJ#       TAB#       COLS    CLUCOLS   PCTFREE$   PCTUSED$   INITRANS   MAXTRANS      FLAGS AUDIT$                                     ROWCNT     BLKCNT     EMPCNT     AVGSPC     CHNCNT     AVGRLN AVGSPC_FLB     FLBCNT ANALYZETIME SAMPLESIZE     DEGREE  INSTANCES    INTCOLS KERNELCOLS   PROPERTY   TRIGFLAG     SPARE1     SPARE2     SPARE3 SPARE4                                                                           SPARE5                                                                           SPARE6
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -------------------------------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
     12082                     0          0          0                                7                     0          0          0          0 1073741825 --------------------------------------                                                                                                                                               9          9  537395232          0        736                                                                                                                                                                                         2012/8/1 7:

SQL> select * from sys.obj$ where obj#='12082';

      OBJ#   DATAOBJ#     OWNER# NAME                            NAMESPACE SUBNAME                             TYPE# CTIME       MTIME       STIME           STATUS REMOTEOWNER                    LINKNAME                                                                              FLAGS OID$                                 SPARE1     SPARE2     SPARE3 SPARE4                                                                           SPARE5                                                                           SPARE6
---------- ---------- ---------- ------------------------------ ---------- ------------------------------ ---------- ----------- ----------- ----------- ---------- ------------------------------ -------------------------------------------------------------------------------- ---------- -------------------------------- ---------- ---------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
     12082                    31 LUNAR_10GTEST                           1                                         2 2012/8/1 5: 2012/8/1 7: 2012/8/1 7:          1                                                                                                                          0                                           6          3

SQL> select * from sys.obj$ where obj#='12068';

      OBJ#   DATAOBJ#     OWNER# NAME                            NAMESPACE SUBNAME                             TYPE# CTIME       MTIME       STIME           STATUS REMOTEOWNER                    LINKNAME                                                                              FLAGS OID$                                 SPARE1     SPARE2     SPARE3 SPARE4                                                                           SPARE5                                                                           SPARE6
---------- ---------- ---------- ------------------------------ ---------- ------------------------------ ---------- ----------- ----------- ----------- ---------- ------------------------------ -------------------------------------------------------------------------------- ---------- -------------------------------- ---------- ---------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
     12068                    31 LUNAR_TEST                              1                                         2 2012/8/1 5: 2012/8/1 5: 2012/8/1 5:          1                                                                                                                          0                                           6          3

SQL>

select name,obj#,intcol# from obj$ where name='LUNAR_10GTEST';

select cols from tab$ where obj#=12082;

update col$ set col#=intcol# where obj#=12082;
update tab$ set cols=cols+2 where obj#=12082;
--update col$ set name='C' where obj#=12082 and col#=3;
update col$ set property=0 where obj#=63779;

startup force;

SQL> select name,obj# from obj$ where name='LUNAR_10GTEST';

NAME                                 OBJ#
------------------------------ ----------
LUNAR_10GTEST                       12083
LUNAR_10GTEST                       12084
LUNAR_10GTEST                       12085
LUNAR_10GTEST                       12086
LUNAR_10GTEST                       12087
LUNAR_10GTEST                       12082

6 rows selected.

SQL> select cols from tab$ where obj#=12082;

      COLS
----------
         7

SQL>
SQL> select * from sys.col$ where obj#=12082;

      OBJ#       COL#    SEGCOL# SEGCOLLENGTH     OFFSET NAME                                TYPE#     LENGTH FIXEDSTORAGE PRECISION#      SCALE      NULL$  DEFLENGTH DEFAULT$                                                                            INTCOL#   PROPERTY  CHARSETID CHARSETFORM     SPARE1     SPARE2     SPARE3 SPARE4                                                                           SPARE5                                                                           SPARE6
---------- ---------- ---------- ------------ ---------- ------------------------------ ---------- ---------- ------------ ---------- ---------- ---------- ---------- -------------------------------------------------------------------------------- ---------- ---------- ---------- ----------- ---------- ---------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
     12082          1          1           22          0 OBJECT_ID                               2         22            0                                0                                                                                                      1          0          0           0          0          0          0
     12082          2          2           30          0 OWNER                                   1         30            0                                0                                                                                                      2          0        852           1          0          0         30
     12082          3          3           30          0 SUBOBJECT_NAME                          1         30            0                                0                                                                                                      3          0        852           1          0          0         30
     12082          4          4          128          0 OBJECT_NAME                             1        128            0                                0                                                                                                      4          0        852           1          0          0        128
     12082          5          5            7          0 STATUS                                  1          7            0                                0                                                                                                      5          0        852           1          0          0          7
     12082          6          6           19          0 TIMESTAMP                               1         19            0                                0                                                                                                      6          0        852           1          0          0         19
     12082          0          7            7          0 SYS_C00007_12080107:11:19$             12          7            0                                0                                                                                                      7      32800          0           0          0          0          0
     12082          7          8            1          0 GENERATED                               1          1            0                                0                                                                                                      8          0        852           1          0          0          1
     12082          0          9           19          0 SYS_C00009_12080107:11:19$              1         19            0                                0                                                                                                      9      32800        852           1          0          0         19

9 rows selected

SQL>
SQL> select * from sys.col$ where obj#=12068;

      OBJ#       COL#    SEGCOL# SEGCOLLENGTH     OFFSET NAME                                TYPE#     LENGTH FIXEDSTORAGE PRECISION#      SCALE      NULL$  DEFLENGTH DEFAULT$                                                                            INTCOL#   PROPERTY  CHARSETID CHARSETFORM     SPARE1     SPARE2     SPARE3 SPARE4                                                                           SPARE5                                                                           SPARE6
---------- ---------- ---------- ------------ ---------- ------------------------------ ---------- ---------- ------------ ---------- ---------- ---------- ---------- -------------------------------------------------------------------------------- ---------- ---------- ---------- ----------- ---------- ---------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
     12068          1          1           22          0 OBJECT_ID                               2         22            0                                0                                                                                                      1          0          0           0          0          0          0
     12068          2          2           30          0 OWNER                                   1         30            0                                0                                                                                                      2          0        852           1          0          0         30
     12068          3          3           30          0 SUBOBJECT_NAME                          1         30            0                                0                                                                                                      3          0        852           1          0          0         30
     12068          4          4          128          0 OBJECT_NAME                             1        128            0                                0                                                                                                      4          0        852           1          0          0        128
     12068          5          5            7          0 STATUS                                  1          7            0                                0                                                                                                      5          0        852           1          0          0          7
     12068          6          6           19          0 TIMESTAMP                               1         19            0                                0                                                                                                      6          0        852           1          0          0         19
     12068          0          7            7          0 SYS_C00007_12080105:01:20$             12          7            0                                0                                                                                                      7      32800          0           0          0          0          0
     12068          7          8            1          0 GENERATED                               1          1            0                                0                                                                                                      8          0        852           1          0          0          1
     12068          0          9           19          0 SYS_C00009_12080105:01:22$              1         19            0                                0                                                                                                      9      32800        852           1          0          0         19

9 rows selected

SQL>

update col$ set col#=segcol# where obj#=12068;
update col$ set property=0 where obj#=12068;

SQL> update col$ set col#=segcol# where obj#=12068;
update col$ set property=0 where obj#=12068;

9 rows updated.

SQL>
9 rows updated.

SQL> commit;

Commit complete.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

SQL> select * from sys.col$ where obj#=12068;

      OBJ#       COL#    SEGCOL# SEGCOLLENGTH     OFFSET NAME                                TYPE#     LENGTH FIXEDSTORAGE PRECISION#      SCALE      NULL$  DEFLENGTH DEFAULT$                                                                            INTCOL#   PROPERTY  CHARSETID CHARSETFORM     SPARE1     SPARE2     SPARE3 SPARE4                                                                           SPARE5                                                                           SPARE6
---------- ---------- ---------- ------------ ---------- ------------------------------ ---------- ---------- ------------ ---------- ---------- ---------- ---------- -------------------------------------------------------------------------------- ---------- ---------- ---------- ----------- ---------- ---------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
     12068          1          1           22          0 OBJECT_ID                               2         22            0                                0                                                                                                      1          0          0           0          0          0          0
     12068          2          2           30          0 OWNER                                   1         30            0                                0                                                                                                      2          0        852           1          0          0         30
     12068          3          3           30          0 SUBOBJECT_NAME                          1         30            0                                0                                                                                                      3          0        852           1          0          0         30
     12068          4          4          128          0 OBJECT_NAME                             1        128            0                                0                                                                                                      4          0        852           1          0          0        128
     12068          5          5            7          0 STATUS                                  1          7            0                                0                                                                                                      5          0        852           1          0          0          7
     12068          6          6           19          0 TIMESTAMP                               1         19            0                                0                                                                                                      6          0        852           1          0          0         19
     12068          7          7            7          0 SYS_C00007_12080105:01:20$             12          7            0                                0                                                                                                      7          0          0           0          0          0          0
     12068          8          8            1          0 GENERATED                               1          1            0                                0                                                                                                      8          0        852           1          0          0          1
     12068          9          9           19          0 SYS_C00009_12080105:01:22$              1         19            0                                0                                                                                                      9          0        852           1          0          0         19

9 rows selected

SQL>

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  188743680 bytes
Fixed Size                  1272720 bytes
Variable Size             130024560 bytes
Database Buffers           54525952 bytes
Redo Buffers                2920448 bytes
Database mounted.
Database opened.
SQL> desc lunar.lunar_test
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 SYS_C00007_12080105:01:20$                                                      DATE
 GENERATED                                                                       VARCHAR2(1)
 SYS_C00009_12080105:01:22$                                                      VARCHAR2(19)

SQL>

SQL> select * from sys.col$ where obj#=12068;

      OBJ#       COL#    SEGCOL# SEGCOLLENGTH     OFFSET NAME                                TYPE#     LENGTH FIXEDSTORAGE PRECISION#      SCALE      NULL$  DEFLENGTH DEFAULT$                                                                            INTCOL#   PROPERTY  CHARSETID CHARSETFORM     SPARE1     SPARE2     SPARE3 SPARE4                                                                           SPARE5                                                                           SPARE6
---------- ---------- ---------- ------------ ---------- ------------------------------ ---------- ---------- ------------ ---------- ---------- ---------- ---------- -------------------------------------------------------------------------------- ---------- ---------- ---------- ----------- ---------- ---------- ---------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------
     12068          1          1           22          0 OBJECT_ID                               2         22            0                                0                                                                                                      1          0          0           0          0          0          0
     12068          2          2           30          0 OWNER                                   1         30            0                                0                                                                                                      2          0        852           1          0          0         30
     12068          3          3           30          0 SUBOBJECT_NAME                          1         30            0                                0                                                                                                      3          0        852           1          0          0         30
     12068          4          4          128          0 OBJECT_NAME                             1        128            0                                0                                                                                                      4          0        852           1          0          0        128
     12068          5          5            7          0 STATUS                                  1          7            0                                0                                                                                                      5          0        852           1          0          0          7
     12068          6          6           19          0 TIMESTAMP                               1         19            0                                0                                                                                                      6          0        852           1          0          0         19
     12068          7          7            7          0 SYS_C00007_12080105:01:20$             12          7            0                                0                                                                                                      7          0          0           0          0          0          0
     12068          8          8            1          0 GENERATED                               1          1            0                                0                                                                                                      8          0        852           1          0          0          1
     12068          9          9           19          0 SYS_C00009_12080105:01:22$              1         19            0                                0                                                                                                      9          0        852           1          0          0         19

9 rows selected

SQL>

update col$ set name='AAA' where obj#=12068 and col#=7;
update col$ set name='BBB' where obj#=12068 and col#=9;

SQL> startup
ORACLE instance started.

Total System Global Area  188743680 bytes
Fixed Size                  1272720 bytes
Variable Size             130024560 bytes
Database Buffers           54525952 bytes
Redo Buffers                2920448 bytes
Database mounted.
Database opened.
SQL> desc lunar.lunar_test
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 SYS_C00007_12080105:01:20$                                                      DATE
 GENERATED                                                                       VARCHAR2(1)
 SYS_C00009_12080105:01:22$                                                      VARCHAR2(19)

SQL> update col$ set name='AAA' where obj#=12068 and col#=7;
update col$ set name='BBB' where obj#=12068 and col#=9;

1 row updated.

SQL>
1 row updated.

SQL> commit;

Commit complete.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  188743680 bytes
Fixed Size                  1272720 bytes
Variable Size             130024560 bytes
Database Buffers           54525952 bytes
Redo Buffers                2920448 bytes
Database mounted.
Database opened.
SQL>
SQL> desc lunar.lunar_test
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 AAA                                                                             DATE
 GENERATED                                                                       VARCHAR2(1)
 BBB                                                                             VARCHAR2(19)

SQL>

create table lunar_test_part_2 as select * from lunar_test partition(PART_2);
alter table lunar_test exchange partition PART_2 with table lunar_test_part_2;

SQL> create table lunar_test_part_2 as select * from lunar_test partition(PART_2);

Table created.

SQL> alter table lunar_test exchange partition PART_2 with table lunar_test_part_2;

Table altered.

SQL>


SQL> alter table lunar_test set unused column aaa;

Table altered.

SQL> alter table lunar_test set unused column bbb;

Table altered.

SQL> desc lunar.lunar_test
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 GENERATED                                                                       VARCHAR2(1)

SQL> alter table lunar_test exchange partition PART_2 with table lunar_test_part_2;

Table altered.

SQL>

SQL> desc lunar_test_part_2
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 GENERATED                                                                       VARCHAR2(1)

SQL> desc lunar.lunar_test
 Name                                                                   Null?    Type
 ---------------------------------------------------------------------- -------- ------------------------------------------------
 OBJECT_ID                                                                       NUMBER
 OWNER                                                                           VARCHAR2(30)
 SUBOBJECT_NAME                                                                  VARCHAR2(30)
 OBJECT_NAME                                                                     VARCHAR2(128)
 STATUS                                                                          VARCHAR2(7)
 TIMESTAMP                                                                       VARCHAR2(19)
 GENERATED                                                                       VARCHAR2(1)

SQL>

 


SQL> select * from USER_UNUSED_COL_TABS;
 
TABLE_NAME                          COUNT
------------------------------ ----------
 
SQL>
SQL> /
 
TABLE_NAME                          COUNT
------------------------------ ----------
LUNAR_10GTEST                           2
 
SQL>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值