Giả sử ban đầu bạn không đặt độ chính xác, thì nó được giả định là tối đa (38). Bạn đang giảm độ chính xác vì bạn đang thay đổi nó từ 38 thành 14.
Cách dễ nhất để xử lý điều này là đổi tên cột, sao chép dữ liệu qua, sau đó bỏ cột ban đầu:
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;
Nếu bạn thực sự muốn giữ lại thứ tự cột, bạn có thể di chuyển dữ liệu hai lần để thay thế:
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;