Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle SQL per modificare il tipo di colonna da numero a varchar2 mentre contiene dati

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 nella colonna era presente un indice, devi ricrearlo.

Tieni presente che l'aggiornamento avrà esito negativo se nella colonna precedente sono presenti numeri maggiori di 999. In tal caso, devi regolare il valore massimo per varchar colonna