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

Cara Memformat Angka sebagai Mata Uang di Oracle

Oracle Database menyediakan TO_CHAR(number) fungsi yang memungkinkan Anda memformat angka berdasarkan model format tertentu. Ada tiga elemen format yang dapat Anda gunakan dengan TO_CHAR() berfungsi untuk mengembalikan nilai sebagai mata uang.

Elemen Format Mata Uang

Elemen format mata uang adalah L , C , dan U .

C Mengembalikan simbol mata uang ISO (nilai saat ini dari NLS_ISO_CURRENCY parameter).
L Mengembalikan simbol mata uang lokal (nilai saat ini dari NLS_CURRENCY parameter).
U Mengembalikan simbol mata uang ganda Euro (atau lainnya), ditentukan oleh nilai saat ini dari NLS_DUAL_CURRENCY parameter.

Model format ini memungkinkan Anda untuk menampilkan tanda mata uang berdasarkan pengaturan mata uang/wilayah Anda, daripada harus memberikan simbol mata uang tetap.

Meskipun benar bahwa Anda dapat memberikan string literal untuk mata uang (misalnya, tanda dolar ($ ) untuk dolar), ini mengasumsikan bahwa mata uang tersebut didenominasi dalam nilai hardcoded tersebut. Ada banyak kemungkinan mata uang lain di seluruh dunia, dan elemen format dapat secara dinamis mengembalikan simbol mata uang lokal untuk sesi pengguna.

Contoh

Berikut ini contoh untuk didemonstrasikan:

ALTER SESSION SET NLS_TERRITORY = 'Australia';
SELECT 
    TO_CHAR(12345, 'fmL99G999D00') AS "r1",
    TO_CHAR(12345, 'fmC99G999D00') AS "r3",
    TO_CHAR(12345, 'fmU99G999D00') AS "r3"
FROM DUAL;

Hasil:

           r1              r3            r3 
_____________ _______________ _____________ 
$12,345.00    AUD12,345.00    $12,345.00   

Satu-satunya perbedaan antara ketiga kolom ini adalah elemen format mata uang. Yang pertama menggunakan L , yang kedua menggunakan C , dan yang ketiga menggunakan U .

Mereka semua menggunakan fm pengubah format untuk menekan padding apa pun. Mereka juga menggunakan 9 dan 0 format elemen untuk menampilkan angka (0 elemen termasuk nol di depan/di belakang). Mereka juga menyertakan pemisah grup (diwakili oleh G ), karakter desimal (diwakili oleh D ).

Mata Uang Ganda

Pada contoh di atas, saya mengatur NLS_TERRITORY ke Australia . Hal ini mengakibatkan simbol mata uang yang sama dikembalikan dalam dua dari tiga kolom (yaitu r1 dan r3 kolom).

Dalam contoh berikut, saya menggunakan wilayah yang berbeda:

ALTER SESSION SET NLS_TERRITORY = 'Denmark';
SELECT 
    TO_CHAR(12345, 'fmL99G999D00') AS "r1",
    TO_CHAR(12345, 'fmC99G999D00') AS "r3",
    TO_CHAR(12345, 'fmU99G999D00') AS "r3"
FROM DUAL;

Hasil:

            r1              r3            r3 
______________ _______________ _____________ 
kr12.345,00    DKK12.345,00    €12.345,00   

Kali ini kita mendapatkan simbol mata uang yang berbeda untuk setiap r1 dan r3 kolom.

Lihat Cara Memeriksa Nilai Parameter NLS jika Anda perlu memeriksanya.

'nlsparam' Argumen

Saat menggunakan TO_CHAR() fungsi, 'nlsparam' argumen dapat digunakan untuk menentukan karakter desimal dan pemisah grup, simbol mata uang lokal, dan simbol mata uang internasional.

Bentuknya sebagai berikut:

'NLS_NUMERIC_CHARACTERS = ''dg''
   NLS_CURRENCY = ''text''
   NLS_ISO_CURRENCY = territory '

Contoh:

SELECT 
    TO_CHAR(
        1234.56, 
        'fmL99G999D99',
        'NLS_NUMERIC_CHARACTERS = '',.''
        NLS_CURRENCY = ''€''
        NLS_ISO_CURRENCY = Germany'
    )
FROM DUAL;

Hasil:

€1.234,56

Ini dia lagi, tapi kali ini saya ganti L dengan C dalam model format:

SELECT 
    TO_CHAR(
        1234.56, 
        'fmC99G999D99',
        'NLS_NUMERIC_CHARACTERS = '',.''
        NLS_CURRENCY = ''€''
        NLS_ISO_CURRENCY = Germany'
    )
FROM DUAL;

Hasil:

EUR1.234,56

C mengembalikan simbol mata uang ISO, yang dalam hal ini adalah EUR .

Lihat Daftar Lengkap Elemen Format Angka di Oracle untuk daftar elemen format yang dapat digunakan untuk memformat angka dengan TO_CHAR() fungsi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak ada lagi SPU

  2. Definisikan Kursor secara kondisional

  3. Oracle Dinamis Pivot_In_Clause

  4. cara membangun kembali antrian wf_Java_deferred

  5. Mengatur zona waktu sesi dengan spring jdbc Oracle