Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zmiana precyzji kolumny numerycznej w Oracle

Zakładając, że początkowo nie ustawiłeś precyzji, zakłada się, że jest to wartość maksymalna (38). Zmniejszasz precyzję, ponieważ zmieniasz ją z 38 na 14.

Najłatwiejszym sposobem poradzenia sobie z tym jest zmiana nazwy kolumny, skopiowanie danych, a następnie upuszczenie oryginalnej kolumny:

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;

Jeśli naprawdę chcesz zachować kolejność kolumn, możesz zamiast tego przenieść dane dwukrotnie:

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. .patch_storage

  2. ORA-00932:niespójne typy danych:oczekiwano - uzyskano CLOB

  3. ORA-01036:nieprawidłowa nazwa/numer zmiennej podczas uruchamiania zapytania przez C#

  4. ScaleGrid dodaje Oracle Cloud do hostingu zarządzanej bazy danych

  5. Jak uzyskać plik z BLOB w Oracle?