A menudo necesitamos soltar la columna en la tabla. Hay dos formas de eliminar la columna en Oracle
(a) modificar la columna de eliminación de la tabla en Oracle
(b) modificar la tabla establecer la columna no utilizada en Oracle
SOLTAR COLUMNA usando DROP COLUMN
Aquí, en esto, soltamos la columna de la tabla usando el siguiente comando .
ALTER TABLE table_name DROP COLUMN col_name;
Esta declaración tiene un bloqueo exclusivo en la tabla y, si la tabla es grande, llevará tiempo ejecutar la consulta
Ejemplo
SQL> CREATE TABLE Books_master ( Book_Id NUMBER(6,0), Title VARCHAR2(50), Author VARCHAR2(50), ISBN VARCHAR2(25), BCost NUMBER(6,0), Publish_Year NUMBER(4,0), CONSTRAINT Books_master_PK PRIMARY KEY (Book_Id), CONSTRAINT Books_master_UK1 UNIQUE (Title, Author), CONSTRAINT Books_master_UK2 UNIQUE (ISBN) ) ; Table created. SQL> INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) VALUES (10, 'Complete/Convenient', 'Ketan Bhagat', 'ISBN 978-93-80349-92-3', 195, 2013); SQL>INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) VALUES (20, 'Deception Point', 'Dan Brown', 'ISBN 0-671-02738-7', 563,2001); SQL> INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) VALUES (30, 'Angels-Demons', 'Dan Brown', 'ISBN 0-671-02736-0',563, 2000); SQL>INSERT INTO Books_master (Book_Id, Title, Author, ISBN, BCost, Publish_Year) VALUES (40, 'Harry Potter', 'J.K. Rowling', 'ISBN 0-7475-5100-6', 102,2003); SQL> commit; Commit complete. SQL> column TITLE format a10 SQL> column AUTHOR format a10 SQL> column ISBN format a15

SQL > Desc BOOKS_MASTER

Sueltemos una columna de esta tabla
SQL> alter table books_master drop column PUBLISH_YEAR; Table altered. SQL > Desc BOOKS_MASTER

SQL> Select * from Books_master;

SOLTAR COLUMNA usando ESTABLECER SIN UTILIZAR
- si le preocupa el recurso consumido al eliminar la columna, puede usar la instrucción ALTER TABLE…SET UNUSED .
- Esta declaración marca una o más columnas como no utilizadas, pero en realidad no elimina los datos de la columna de destino ni restaura el espacio en disco ocupado por estas columnas.
- Una columna que está marcada como no utilizada no se muestra en las consultas ni en las vistas del diccionario de datos, y su nombre se elimina para que una nueva columna pueda reutilizar ese nombre. También se eliminan todas las restricciones, índices y estadísticas definidos en la columna.
Sintaxis
ALTER TABLE
ESTABLECER COLUMNA NO UTILIZADA
Podemos soltar la columna no utilizada más adelante cuando el recurso sea más bajo usando el comando
ALTER TABLE
Soltar COLUMNAS NO UTILIZADAS;
Si tiene tablas grandes, puede reducir la cantidad de registros de deshacer acumulados utilizando la opción CHECKPOINT, que fuerza un punto de control después de que se haya procesado el número especificado de filas. Los puntos de control reducen la cantidad de registros de deshacer acumulados durante la operación de la columna desplegable para evitar el posible agotamiento del espacio de deshacer.
ALTER TABLE table_name DROP COLUMNAS NO UTILIZADAS CHECKPOINT 500;
- Si ha utilizado la sintaxis del punto de control con su comando de eliminación, entonces podría eliminar la sesión (o cerrar la base de datos) a la mitad de la eliminación.
- La tabla no estará disponible para DML o consulta
- puede finalizar el comando "soltar columnas" usando la opción "continuar" (con un punto de control opcional).
alter table drop columns continue checkpoint; alter table drop columns continue checkpoint 5000;
Ejemplo
vamos con la tabla creada anteriormente
SQL> alter table books_master set unused column ISBN; Table altered. SQL> desc books_master

SQL> Select * from Books_master;

Podemos verificar el recuento de columnas no utilizadas consultando la siguiente vista USER_UNUSED_COL_TABS, ALL_UNUSED_COL_TABS o DBA_UNUSED_COL_TABS
SQL> select * from DBA_UNUSED_COL_TABS where TABLE_NAME='BOOKS_MASTER';

Ahora puede soltar la columna durante el período de baja actividad
SQL> alter table Books_master drop unused columns; Table altered. SQL> select * from DBA_UNUSED_COL_TABS where TABLE_NAME='BOOKS_MASTER'; no rows selected
Cómo eliminar varias columnas
Podemos especificar varias columnas durante el comando soltar
SQL> alter table books_master drop (AUTHOR,TITLE); Table altered.
Espero que les guste la publicación en la columna desplegable de la tabla alterada en Oracle. Proporcione sus comentarios
También lee
Clave principal de Oracle
modificar movimiento de tabla
modificar columna de cambio de nombre de tabla en Oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables006. htm