Oracle
 sql >> база данни >  >> RDS >> Oracle

Промяна на точността на числовата колона в Oracle

Ако приемем, че първоначално не сте задали точност, се приема, че е максималната (38). Намалявате точността, защото я променяте от 38 на 14.

Най-лесният начин да се справите с това е да преименувате колоната, копирате данните и след това пуснете оригиналната колона:

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;

Ако наистина искате да запазите реда на колоните, вместо това можете да преместите данните два пъти:

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ROWID (оракул) - има ли полза от него?

  2. Може ли %NOTFOUND да върне null след извличане?

  3. Как правилно да обработваме датите в ограниченията на заявките

  4. ORACLE SQL:Вземете всички цели числа между две числа

  5. Не е валиден месец при вмъкване на данни в oracle