Muitas vezes precisamos descartar a coluna na tabela. Existem duas maneiras de descartar a coluna no Oracle
(a) alterar a coluna descartar a tabela no oracle
(b) alterar a tabela definir a coluna não utilizada no oracle
DROP COLUMN usando DROP COLUMN
Aqui, removemos a coluna da tabela usando o comando abaixo .
ALTER TABLE table_name DROP COLUMN col_name;
Esta instrução leva bloqueio exclusivo na tabela e se a tabela for grande, levará tempo para executar a consulta
Exemplo
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
Vamos remover uma coluna desta tabela
SQL> alter table books_master drop column PUBLISH_YEAR; Table altered. SQL > Desc BOOKS_MASTER
SQL> Select * from Books_master;
DROP COLUMN usando SET UNUSED
- se estiver preocupado com o recurso consumido ao descartar a coluna, use a instrução ALTER TABLE…SET UNUSED .
- Esta instrução marca uma ou mais colunas como não utilizadas, mas não remove os dados da coluna de destino nem restaura o espaço em disco ocupado por essas colunas.
- Uma coluna marcada como não utilizada não é exibida em consultas ou visualizações de dicionário de dados, e seu nome é removido para que uma nova coluna possa reutilizar esse nome. Todas as restrições, índices e estatísticas definidos na coluna também são removidos.
Sintaxe
ALTER TABLE
SET UNUSED COLUMN
Podemos descartar a coluna não utilizada mais tarde quando o recurso for menor usando o comando
ALTER TABLE
Drop UNUSED COLUNS;
Se você tiver tabelas grandes, poderá reduzir a quantidade de logs de desfazer acumulados usando a opção CHECKPOINT, que força um ponto de verificação após o processamento do número especificado de linhas. O checkpoint reduz a quantidade de logs de undo acumulados durante a operação de soltar a coluna para evitar o esgotamento potencial do espaço de undo.
ALTER TABLE table_name DROP UNUSED COLUMNS CHECKPOINT 500;
- Se você tiver usado a sintaxe de ponto de verificação com o comando drop, poderá encerrar a sessão (ou encerrar o banco de dados) no meio do processo de soltar.
- A tabela não estará disponível para DML ou consulta
- você pode finalizar o comando "soltar colunas" usando a opção "continuar" (com um ponto de verificação opcional).
alter table drop columns continue checkpoint; alter table drop columns continue checkpoint 5000;
Exemplo
vamos com a tabela criada anteriormente
SQL> alter table books_master set unused column ISBN; Table altered. SQL> desc books_master
SQL> Select * from Books_master;
Podemos verificar a contagem de colunas não utilizadas consultando a visualização abaixo USER_UNUSED_COL_TABS, ALL_UNUSED_COL_TABS ou DBA_UNUSED_COL_TABS
SQL> select * from DBA_UNUSED_COL_TABS where TABLE_NAME='BOOKS_MASTER';
Agora você pode soltar a coluna durante o período de baixa atividade
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
Como remover várias colunas
Podemos especificar várias colunas durante o comando drop
SQL> alter table books_master drop (AUTHOR,TITLE); Table altered.
Espero que você goste de postar em alterar a coluna drop table no oracle. Por favor, forneça o feedback
Também lê
Chave primária do Oracle
alterar a movimentação da tabela
alterar a renomeação da tabela no oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables006. htm