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

Oracle SQL para alterar o tipo de coluna de número para varchar2 enquanto contém dados

create table temp_uda1 (test1 integer);
insert into temp_uda1 values (1);

alter table temp_uda1 add (test1_new varchar2(3));

update temp_uda1 
   set test1_new = to_char(test1);

alter table temp_uda1 drop column test1 cascade constraints;
alter table temp_uda1 rename column test1_new to test1;

Se houver um índice na coluna, você precisará recriá-lo.

Observe que a atualização falhará se você tiver números na coluna antiga que sejam maiores que 999. Se isso acontecer, você precisará ajustar o valor máximo para o varchar coluna