-- +----------------------------------------------------------------------------+ -- | Jeffrey M. Hunter | -- | jhunter@idevelopment.info | -- | www.idevelopment.info | -- |----------------------------------------------------------------------------| -- | Copyright (c) 1998-2012 Jeffrey M. Hunter. All rights reserved. | -- |----------------------------------------------------------------------------| -- | DATABASE : Oracle | -- | FILE : example_drop_unused_column.sql | -- | CLASS : Examples | -- | PURPOSE : Example SQL syntax used to drop unused columns from a table. | -- | NOTE : As with any code, ensure to test this script in a development | -- | environment before attempting to run it in production. | -- +----------------------------------------------------------------------------+ connect scott/tiger set serveroutput on Prompt ====================== Prompt DROP existing table... Prompt ====================== Prompt accept a1 Prompt "Hit to continue"; DROP TABLE d_table / Prompt ======================= Prompt CREATE TESTING TABLE... Prompt ======================= Prompt accept a1 Prompt "Hit to continue"; CREATE TABLE d_table ( id_no NUMBER , name VARCHAR2(100) , d_column VARCHAR2(100) ) / Prompt ======================== Prompt MARK COLUMN AS UNUSED... Prompt ======================== Prompt accept a1 Prompt "Hit to continue"; ALTER TABLE d_table SET UNUSED COLUMN d_column; Prompt ======================================= Prompt QUERY ALL TABLES WITH UNUSED COLUMNS... Prompt ======================================= Prompt accept a1 Prompt "Hit to continue"; SELECT * FROM sys.dba_unused_col_tabs; Prompt ====================================== Prompt PHYSICALLY REMOVE THE UNUSED COLUMN... Prompt ====================================== Prompt accept a1 Prompt "Hit to continue"; ALTER TABLE d_table DROP UNUSED COLUMNS; Prompt ================================================ Prompt IF YOU WANTED TO PHYSICALLY REMOVE THE COLUMN... Prompt ================================================ Prompt accept a1 Prompt "Hit to continue"; -- ALTER TABLE d_table DROP COLUMN d_column; Prompt ========================================= Prompt OPTIONALLY SYNTAX FOR REMOVING COLUMNS... Prompt ========================================= Prompt Prompt ALTER TABLE d_table DROP COLUMN d_column CASCADE CONSTRAINTS; Prompt ALTER TABLE d_table DROP COLUMN d_column INVALIDATE; Prompt ALTER TABLE d_table DROP COLUMN d_column CHECKPOINT 1000; Prompt accept a1 Prompt "Hit to EXIT";