Za předpokladu, že jste zpočátku nenastavili přesnost, předpokládá se, že je maximální (38). Snižujete přesnost, protože ji měníte z 38 na 14.
Nejjednodušší způsob, jak to vyřešit, je přejmenovat sloupec, zkopírovat data a poté vypustit původní sloupec:
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;
Pokud opravdu chcete zachovat řazení sloupců, můžete místo toho přesunout data dvakrát:
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;