Angenommen, Sie haben anfangs keine Genauigkeit festgelegt, wird davon ausgegangen, dass es sich um das Maximum (38) handelt. Sie verringern die Genauigkeit, weil Sie sie von 38 auf 14 ändern.
Der einfachste Weg, dies zu handhaben, besteht darin, die Spalte umzubenennen, die Daten zu kopieren und dann die ursprüngliche Spalte zu löschen:
alter table EVAPP_FEES rename column AMOUNT to AMOUNT_OLD;
alter table EVAPP_FEES add AMOUNT NUMBER(14,2);
update EVAPP_FEES set AMOUNT = AMOUNT_OLD;
alter table EVAPP_FEES drop column AMOUNT_OLD;
Wenn Sie die Spaltenreihenfolge wirklich beibehalten möchten, können Sie die Daten stattdessen zweimal verschieben:
alter table EVAPP_FEES add AMOUNT_TEMP NUMBER(14,2);
update EVAPP_FEES set AMOUNT_TEMP = AMOUNT;
update EVAPP_FEES set AMOUNT = null;
alter table EVAPP_FEES modify AMOUNT NUMBER(14,2);
update EVAPP_FEES set AMOUNT = AMOUNT_TEMP;
alter table EVAPP_FEES drop column AMOUNT_TEMP;