Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Mengubah presisi kolom numerik di Oracle

Dengan asumsi bahwa Anda tidak menetapkan presisi pada awalnya, itu dianggap maksimum (38). Anda mengurangi presisi karena Anda mengubahnya dari 38 menjadi 14.

Cara termudah untuk menangani ini adalah dengan mengganti nama kolom, menyalin data, lalu melepaskan kolom aslinya:

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;

Jika Anda benar-benar ingin mempertahankan urutan kolom, Anda dapat memindahkan data dua kali sebagai gantinya:

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. Mengembalikan nilai kolom identitas setelah penyisipan di Oracle

  2. Bagaimana cara mengembalikan resultet/kursor dari blok anonim Oracle PL/SQL yang menjalankan SQL Dinamis?

  3. ORA-00900:pernyataan SQL tidak valid- saat menjalankan prosedur di Oracle 10g

  4. Fungsi TO_CHAR(angka) di Oracle

  5. Bagaimana cara memeriksa NLS_LANG klien?