Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle SQL pour changer le type de colonne de nombre à varchar2 alors qu'il contient des données

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;

S'il y avait un index sur la colonne, vous devez le recréer.

Notez que la mise à jour échouera si vous avez des nombres dans l'ancienne colonne qui sont supérieurs à 999. Si c'est le cas, vous devez ajuster la valeur maximale pour le varchar colonne