sql >> Database >  >> RDS >> Oracle

Precisie van numerieke kolom wijzigen in Oracle

Ervan uitgaande dat u aanvankelijk geen precisie hebt ingesteld, wordt aangenomen dat dit het maximum is (38). Je vermindert de precisie omdat je deze verandert van 38 naar 14.

De gemakkelijkste manier om hiermee om te gaan, is door de kolom te hernoemen, de gegevens te kopiëren en vervolgens de oorspronkelijke kolom weg te laten:

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;

Als u de kolomvolgorde echt wilt behouden, kunt u de gegevens in plaats daarvan twee keer verplaatsen:

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. formaat interval met to_char

  2. LIMIT doorgeven als parameters aan MySQL sproc

  3. Hoe een opgeslagen procedure in het C#-programma uit te voeren

  4. Het einde van een lange variabele waarde in VBA inspecteren