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

Como modificar o tipo de dados no Oracle com linhas existentes na tabela


Você não pode.

No entanto, você pode criar uma nova coluna com o novo tipo de dados, migrar os dados, descartar a coluna antiga e renomear a nova coluna. Algo como
ALTER TABLE table_name
  ADD( new_column_name varchar2(10) );

UPDATE table_name
   SET new_column_name = to_char(old_column_name, <<some format>>);

ALTER TABLE table_name
 DROP COLUMN old_column_name;

ALTER TABLE table_name
 RENAME COLUMN new_column_name TO old_coulumn_name;

Se você tiver um código que dependa da posição da coluna na tabela (o que você realmente não deveria ter), você pode renomear a tabela e criar uma visualização na tabela com o nome original da tabela que expõe as colunas no ordenar seu código espera até que você possa corrigir esse código de buggy.