Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como alterar a tabela no Oracle


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 drop column;
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