Muitas vezes precisamos alterar a tabela no Oracle dependendo das alterações e atualização do requisito. Aqui estão alguns dos pontos importantes sobre a declaração da tabela Alter
- Você altera ou modifica uma tabela usando o ALTER TABLE declaração.
- A tabela deve estar contida em seu esquema Para alterar uma tabela, ou você deve ter privilégio de objeto ALTER para a tabela ou o privilégio de sistema ALTER ANY TABLE .
- Se uma visualização, visualização materializada, gatilho, índice baseado em função, restrição de verificação, função, procedimento de pacote depende de uma tabela base, a alteração da tabela base ou de suas colunas pode afetar o objeto dependente. inválido se o objeto de tabela dependente for alterado e você precisar torná-lo válido novamente
Modificar características físicas (INITRANS ou parâmetros de armazenamento)
Podemos modificar o parâmetro de armazenamento da tabela usando a instrução Alter table. Podemos modificar inittrans assim
ALTER TABLE TABLE_NAME INITRANS 10;
Movendo a tabela para novos segmentos ou tablespace
Podemos mover a tabela sem partição ou partição da tabela para um novo segmento ou novo tablespace, se necessário
Alter table table_name move tablespace <tablespace name>
Podemos até usar o comando move para alterar qualquer parâmetro de armazenamento das tabelas que não são modificadas usando o comando alter table
Alterar tabela no oracle para alterar o tipo de dados
Podemos alterar o tipo de dados de qualquer coluna usando o comando alter table modificar
ALTER TABLE <table_name> MODIFY (<column_name> <new_data_type>);
Before SQL> desc emp Name Null? Type ----------------------------------------- -------- ----------------------- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) After SQL> desc emp Name Null? Type ----------------------------------------- -------- ---------------------------- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(20) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2)
modificar o tipo de dados da coluna no oracle
Adicionar uma nova coluna/Soltar uma coluna/renomear uma coluna
Podemos adicionar uma nova coluna à definição da tabela
Usando o comando alter table add
ALTER TABLE <table_name>
ADD (<New column_name> <new_data_type>);
O Oracle permite renomear colunas existentes em uma tabela. Use a cláusula RENAME COLUMN da instrução ALTER TABLE para renomear uma coluna
Oracle permite que você solte a coluna na tabela usando o comando
Alter table
Consulte o artigo abaixo para saber mais sobre isso em detalhes
alterar tabela adicionar oráculo de coluna
Definir uma coluna não utilizada e descartar a coluna não utilizada
se você estiver preocupado com o recurso consumido ao descartar a coluna, poderá usar a instrução ALTER TABLE…SET UNUSED .
Essa instrução marca uma ou mais colunas como não utilizadas, mas na verdade 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.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;
Podemos descartar a coluna não utilizada mais tarde quando o recurso for menor usando o comando
ALTER TABLE <table_name>
Drop UNUSED COLUMN ;
Adicione, modifique ou elimine restrições de integridade associadas à tabela ou você também pode ativar/desativar as restrições
A adição de restrições é feita usando alterar restrições de adição de tabela
ALTER TABLE EMP ADD CONSTRAINT EMP_FK FOREIGN KEY (DEPT_NO) REFERENCES DEPT(DEPT_NO);
Restrições de descarte – é feito usando o
Comando
ALTER TABLE DROP CONSTRAINT <constraint_name> command;
Habilitando/Desabilitando Restrições – As restrições podem ser criadas no modo DISABLE/ENABLE ou podem ser desabilitadas ou habilitadas usando o comando
ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>
Renomear nome da tabela
Oracle permite renomear o nome da tabela também
Rename <table name> to <new table name>;
Alteração de cache de tabela/sem cache, compactação, paralelismo
O Oracle permite Alteração do cache de tabela/sem cache, compressão, paralelismo
Artigos relacionados
Listar todas as tabelas no Oracle
criar tabela oracle
ora-20005:as estatísticas do objeto estão bloqueadas
alterar movimentação da tabela
como verificar todas as restrições em uma tabela no oracle
https ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm