sql >> Base de Datos >  >> RDS >> Oracle

Oracle SQL para cambiar el tipo de columna de número a varchar2 mientras contiene datos

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;

Si había un índice en la columna, debe volver a crearlo.

Tenga en cuenta que la actualización fallará si tiene números en la columna anterior que son mayores que 999. Si los tiene, debe ajustar el valor máximo para el varchar columna