El comando que estás buscando es:
alter table tblName drop column columnName
donde tblName
es el nombre de la tabla y columnName
es el nombre de la columna, pero es posible que deba hacer algunas cosas primero.
- Si hay referencias de clave externa a la columna, primero deberá deshacerse de ellas.
- Si hay un índice que usa esa columna, deberá deshacerse de él o ajustarlo para que no use esa columna.
Tenga en cuenta que el rendimiento de este comando puede no ser necesariamente bueno. Una opción es esperar un período de inactividad cuando pueda estar seguro de que nadie accederá a la base de datos, cambie el nombre de la tabla actual y luego use create table
y insert into ... select from
para transferir las columnas que no desea eliminar.
Una de las versiones posteriores de Oracle en realidad tiene una eliminación suave que puede marcar una columna como no utilizada sin eliminarla físicamente. Tiene el mismo efecto ya que ya no puede hacer referencia a él y hay un comando en la línea de alter table ... drop unused columns
que está destinado a ejecutarse en un momento tranquilo, que hace el trabajo duro de eliminarlo físicamente.
Esto tiene la ventaja de "desaparecer" las columnas inmediatamente sin reducir el rendimiento de la base de datos durante las horas punta.