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

Bagaimana NOMOR Oracle memiliki Skala lebih besar dari Presisi?

Menurut Dokumentasi Oracle:

Begini cara saya melihatnya :

  • Saat Precision lebih besar dari Skala (mis. NUMBER(8,5) ), tidak masalah, ini langsung. Precision berarti bilangan tersebut berjumlah 8 digit, 5 di antaranya adalah bagian pecahan (.→), jadi bagian bilangan bulat (←.) akan memiliki 3 digit. Ini mudah.
  • Saat Anda melihat Precision lebih kecil dari Scale (mis. NUMBER(2, 5) ), ini berarti 3 hal :

    • Angka tidak akan memiliki bagian bilangan bulat, hanya bagian pecahan. Jadi 0 di bagian bilangan bulat tidak dihitung dalam perhitungan, Anda mengatakan .12345 bukan 0.12345. Faktanya, jika Anda hanya menentukan 1 digit di bagian bilangan bulat, itu akan selalu menghasilkan kesalahan.
    • Scale mewakili jumlah total digit di bagian pecahan yang akan dimiliki nomor tersebut. 5 dalam hal ini. Jadi bisa .12345 atau .00098 tapi totalnya tidak lebih dari 5 digit.
    • Bagian pecahan dibagi menjadi 2 bagian, angka penting dan nol. Angka penting ditentukan oleh Precision , dan jumlah minimum nol sama dengan (Scale - Precision ). Contoh :

    di sini Angka harus memiliki minimal 3 angka nol di bagian pecahan. diikuti oleh 2 angka penting (bisa juga nol). Jadi 3 nol + 2 angka penting =5 yang merupakan Scale nomor.

Singkatnya, ketika Anda melihat misalnya NUMBER(6,9) , ini memberi tahu kita bahwa bagian pecahan akan memiliki total 9 digit, dimulai dengan 3 angka nol wajib dan diikuti 6 digit.

Berikut beberapa contohnya :

SELECT CAST(.0000123 AS NUMBER(6,9)) FROM dual;   -- prints: 0.0000123; .000|012300
SELECT CAST(.000012345 AS NUMBER(6,9)) FROM dual; -- prints: 0.0000123; .000|012345
SELECT CAST(.123456 AS NUMBER(3,4)) FROM dual;    -- ERROR! must have a 1 zero (4-3=1)
SELECT CAST(.013579 AS NUMBER(3,4)) FROM dual;    -- prints: 0.0136; max 4 digits, .013579 rounded to .0136


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memformat Kolom Tanggal di javaFX TableView untuk Data yang diambil dari Oracle DB

  2. Oracle 11g - cara paling efisien untuk menyisipkan banyak baris

  3. Kunci dan indeks utama dalam bahasa kueri Hive mungkin atau tidak?

  4. Oracle SQL - dapatkah CASE digunakan dalam batasan pemeriksaan untuk menentukan atribut data?

  5. ORA-04091 - Bagaimana cara mengubah tabel yang memicu pemicu?