sql >> Database >  >> RDS >> Oracle

Oracle SQL om kolomtype te wijzigen van getal in varchar2 terwijl het gegevens bevat

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;

Als er een index op de kolom stond, moet u deze opnieuw maken.

Houd er rekening mee dat de update mislukt als u getallen in de oude kolom hebt die groter zijn dan 999. Als u dat wel doet, moet u de maximale waarde voor de varchar aanpassen kolom



  1. Een datum converteren in MySQL vanuit een stringveld

  2. ActiveAndroid Pre-tabel vullen met schemamigratie

  3. FOUT 1452:Kan een onderliggende rij niet toevoegen of bijwerken:een beperking van een externe sleutel mislukt

  4. De meest efficiënte T-SQL-manier om een ​​varchar aan de linkerkant tot een bepaalde lengte op te vullen?