sql >> Databáze >  >> RDS >> Oracle

Změna přesnosti číselného sloupce v Oracle

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;


  1. Více příkazů INSERT vs. jeden příkaz INSERT s více VALUES

  2. Získejte datum/čas z unixového časového razítka v SQLite

  3. 4 tipy pro nastavení upozornění SQL Server

  4. Oracle Security Alert pro CVE-2021-44228