Caba da TI

Caba da TI

Alterar coluna para permitir valores nulos no Oracle

Você já criou uma tabela no Oracle com uma coluna not null e algum tempo depois teve a necessidade de alterá-la para nullable? Essa alteração é simples, vaja abaixo o código para alterar uma coluna para permitir null no Oracle.

ALTER TABLE NOME_DA_TABELA MODIFY NOME_DA_COLUNA NULL;

Da mesma forma, pode ser necessário alterar uma coluna para não permitir valores nulos. Nesse caso basta utilizar um script como o mostrado a seguir:

ALTER TABLE NOME_DA_TABELA MODIFY NOME_DA_COLUNA NOT NULL;

Ao executar o script para alterar a coluna para não permitir valores nulos, caso dê um erro com a seguinte mensagem: SQL Error [2296] [23000]: ORA-02296: não é possível ativar … localizados valores nulos. Esse erro se deve ao fato de a sua coluna já possuir valores nulos então não é possível alterar para not null pois o Oracle valida todos os dados, inclusive os já existentes na coluna. Para resolver esse problema, deve-se utilizar a palavra-chave NOVALIDATE. Ao ser criada uma constraint com essa palavra-chave, a constraint validará somente novos dados inseridos na coluna ou alterações na coluna, deixando de validar os dados já existentes. Isso permite que você altere a coluna para NOT NULL mesmo que já existam registros vazios nessa coluna. Veja abaixo como ficaria o script:

ALTER TABLE NOME_DA_TABELA MODIFY NOME_DA_COLUNA NOT NULL NOVALIDATE;

Referências

Constraint Checking Updates

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *