ALTER TABLE partitioning

Change the partition properties of an existing table.

Syntax:

   ALTER TABLE [schema.]table
      partitioning_clause
          [PARALLEL parallel_clause]
             [ENABLE enable_clause | DISABLE disable_clause]
                 [{ENABLE|DISABLE} TABLE LOCK]
                    [{ENABLE|DISABLE} ALL TRIGGERS];


 partitioning_clause:
   ADD PARTITION partition    --add Range ptn
      VALUES LESS THAN (value, value, [MAXVALUE],…)  [partition_description]

   ADD PARTITION partition    --add Hash ptn
      storage_options 
      extent_options
      OVERFLOW
         storage_options
         extent_options
      COMPRESS | NOCOMPRESS
      LOB (LOB_item) STORE AS LOB_segname
      VARRAY varray STORE AS LOB_segname
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      PARALLEL int | NOPARALLEL

   ADD PARTITION partition    --add List ptn
      VALUES (DEFAULT | NULL | value [,…])  [partition_description]

   COALESCE PARTITION partition
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      PARALLEL int | NOPARALLEL

   DROP [SUB]PARTITION partition 
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      PARALLEL int | NOPARALLEL

   MODIFY PARTITION partition
      storage_options 
      extent_options
      OVERFLOW
         storage_options
         extent_options
      COMPRESS | NOCOMPRESS
      LOB (LOB_item) STORE AS LOB_segname
      VARRAY varray STORE AS LOB_segname
      ADD SUBPARTITION subpartition [VALUES (DEFAULT | NULL | value [,…])]
         TABLESPACE tablespace
         OVERFLOW [TABLESPACE tablespace]
         LOB (LOB_item) STORE AS LOB_segname
         VARRAY varray STORE AS LOB_segname
            [{UPDATE | INVALIDATE} GLOBAL INDEXES]
            [PARALLEL int | NOPARALLEL]
      COALESCE SUBPARTITION            -- for HASH Partition
         [{UPDATE | INVALIDATE} GLOBAL INDEXES]
            [PARALLEL int | NOPARALLEL]
      MAPPING TABLE UPDATE BLOCK REFERENCES
      MAPPING TABLE ALLOCATE EXTENT [( [size int K | M ]
         [DATAFILE 'filename' ] [INSTANCE int] )
      MAPPING TABLE DEALLOCATE UNUSED [KEEP int K | M ]
      {ADD | DROP} VALUES (partition_value,…)   -- for List Partition
      [REBUILD] UNUSABLE LOCAL INDEXES

   MODIFY DEFAULT ATTRIBUTES [FOR PARTITION partition] storage_options
      [PCTTHRESHOLD int] [[NO]COMPRESS [int]] [overflow_clause]
          [LOB lob_item LOB_parameters][VARRAY varray LOB_parameters]

   MODIFY SUBPARTITION subpartion
      ALLOCATE EXTENT [( [size int K | M ]
         [DATAFILE 'filename' ] [INSTANCE int] )
      DEALLOCATE UNUSED [KEEP int K | M ]
         {ADD | DROP} VALUES (partition_value,…)
      LOB (LOB_item) STORE AS LOB_segname
      VARRAY varray STORE AS LOB_segname
      {ADD | DROP} VALUES (partition_value,…)   -- for List Partition
      [REBUILD] UNUSABLE LOCAL INDEXES

   MOVE PARTITION partition [MAPPING TABLE]
      storage_options [COMPRESS [int] | NOCOMPRESS]
      OVERFLOW storage_options
      LOB (LOB_item) STORE AS LOB_segname
      VARRAY varray STORE AS LOB_segname
      SUBPARTITIONS hash_subpartition_quantity [STORE IN (tablespace,…)]
      (SUBPARTITION subpartition [VALUES (DEFAULT | NULL | value,…)]
          TABLESPACE tablespace
          OVERFLOW [TABLESPACE tablespace]
          LOB (LOB_item) STORE AS LOB_segname
          VARRAY varray STORE AS LOB_segname ,SUBPARTITION…)
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      {NOPARALLEL|PARALLEL int}

   MOVE SUBPARTITION subpartion [partition_description]
      VALUES (DEFAULT | NULL | value [,…])
      TABLESPACE tablespace
      OVERFLOW [TABLESPACE tablespace]
      LOB (LOB_item) STORE AS LOB_segname
      VARRAY varray STORE AS LOB_segname 
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      {NOPARALLEL|PARALLEL int}

   RENAME [SUB]PARTITION ptn_name TO new_name

   TRUNCATE [SUB]PARTITION ptn_name 
      {DROP|REUSE} STORAGE
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      {NOPARALLEL|PARALLEL int}

   SET SUBPARTITION TEMPLATE (SUBPARTITION subpartition [VALUES (DEFAULT | NULL | value [,…])]
      TABLESPACE tablespace
      OVERFLOW [TABLESPACE tablespace]
      LOB (LOB_item) STORE AS LOB_segname
      VARRAY varray STORE AS LOB_segname )

   SET SUBPARTITION TEMPLATE int    --hash SubPartition quantity

   SPLIT PARTITION ptn_name AT (value, value…)
      INTO (ptn_spec, ptn_spec)
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      {NOPARALLEL|PARALLEL int}

   SPLIT SUBPARTITION ptn_name VALUES (value, [NULL],value [,…])
      INTO (ptn_spec, ptn_spec)
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      {NOPARALLEL|PARALLEL int}

   MERGE PARTITIONS ptn_1, ptn_2 
      INTO PARTITION partition 
      storage_options 
      extent_options
      OVERFLOW
         storage_options
         extent_options
      COMPRESS | NOCOMPRESS
      LOB (LOB_item) STORE AS LOB_segname
      VARRAY varray STORE AS LOB_segname
      SUBPARTITIONS hash_subpartition_quantity [STORE IN (tablespace [,…])]
      (SUBPARTITION subpartition [VALUES (DEFAULT | NULL | value [,…])]
          TABLESPACE tablespace
          OVERFLOW [TABLESPACE tablespace]
          LOB (LOB_item) STORE AS LOB_segname
          VARRAY varray STORE AS LOB_segname ,SUBPARTITION…)
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      {NOPARALLEL | PARALLEL int}

   MERGE SUBPARTITIONS subptn_1, subptn_2 
      INTO SUBPARTITION subpartition 
      VALUES LESS THAN (value, value, [MAXVALUE] [,…]) 
      TABLESPACE tablespace
      OVERFLOW [TABLESPACE tablespace]
      LOB (LOB_item) STORE AS LOB_segname
      VARRAY varray STORE AS LOB_segname ,SUBPARTITION…
      {UPDATE | INVALIDATE} GLOBAL INDEXES
      {NOPARALLEL | PARALLEL int}

   EXCHANGE [SUB]PARTITION [sub]partition WITH TABLE table
      {INCLUDING|EXCLUDING} INDEXES
      {WITH|WITHOUT} VALIDATION
      EXCEPTIONS INTO [schema.]table
      {UPDATE | INVALIDATE} GLOBAL INDEXES
         {NOPARALLEL|PARALLEL int}

storage_options:
   PCTFREE int
   PCTUSED int
   INITTRANS int
   MAXTRANS int
   STORAGE storage_clause
   TABLESPACE tablespace
   {LOGGING|NOLOGGING}

overflow_clause:
   
   OVERFLOW ALLOCATE EXTENT [( [size int K | M ]
      [DATAFILE 'filename' ] [INSTANCE int] )]

   OVERFLOW DEALLOCATE UNUSED [KEEP int K | M ]

   ADD OVERFLOW storage_options [(PARTITION storage_options [,PARTITION storage_options [,…]])]

extent_options:
   ALLOCATE EXTENT [( [size int K | M ]
      [DATAFILE 'filename' ] [INSTANCE int] )]

   DEALLOCATE UNUSED [KEEP int K | M ]

Examples

Add a column to a table
   ALTER TABLE STAFF_OPTIONS
      ADD SO_INSURANCE_PROVIDER Varchar2(35);

Add  a default value to a column
   ALTER TABLE STAFF_OPTIONS
      MODIFY SO_INSURANCE_PROVIDER Varchar2(35) DEFAULT 'ABC Ins';

Add two columns to a table and remove a constraint
   ALTER TABLE STAFF_OPTIONS
      ADD (SO_STAFF_ID INT, SO_PENSION_ID INT)
          STORAGE INITIAL 10 K
          NEXT 10 K
          MAXEXTENTS 121
          PCTINCREASE 0
          FREELISTS 2
      DROP CONSTRAINT cons_SO;

"You're either part of the solution or part of the problem” ~ Eldridge Cleaver

Related Oracle Commands:

ANALYZE TABLE COMPUTE STATISTICS
ALTER INDEX
ALTER VIEW
COMMENT - Add a comment to a table or a column.
RENAME
DBMS_REDEFINITION

Related Views:

  DBA_ALL_TABLES       ALL_ALL_TABLES       USER_ALL_TABLES
  DBA_TABLES           ALL_TABLES           USER_TABLES         TAB
  DBA_TAB_COLUMNS      ALL_TAB_COLUMNS      USER_TAB_COLUMNS 
  DBA_TAB_PARTITIONS   ALL_TAB_PARTITIONS   USER_TAB_PARTITIONS 
  DBA_PART_TABLES      ALL_PART_TABLES      USER_PART_TABLES

 
Copyright © 1999-2024 SS64.com
Some rights reserved