Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में किसी संख्या को मुद्रा के रूप में कैसे प्रारूपित करें

Oracle डाटाबेस TO_CHAR(number) . प्रदान करता है फ़ंक्शन जो आपको दिए गए प्रारूप मॉडल के आधार पर संख्याओं को प्रारूपित करने में सक्षम बनाता है। तीन प्रारूप तत्व हैं जिनका उपयोग आप TO_CHAR() . के साथ कर सकते हैं मुद्रा के रूप में मान वापस करने के लिए कार्य करता है।

मुद्रा प्रारूप तत्व

मुद्रा प्रारूप तत्व L . हैं , C , और U

C आईएसओ मुद्रा प्रतीक (NLS_ISO_CURRENCY का वर्तमान मान) देता है पैरामीटर)।
L स्थानीय मुद्रा प्रतीक (NLS_CURRENCY का वर्तमान मान) देता है पैरामीटर)।
U यूरो (या अन्य) दोहरी मुद्रा प्रतीक लौटाता है, जो NLS_DUAL_CURRENCY के वर्तमान मान द्वारा निर्धारित होता है पैरामीटर।

ये प्रारूप मॉडल आपको एक निश्चित मुद्रा प्रतीक प्रदान करने के बजाय, अपनी मुद्रा/क्षेत्र सेटिंग्स के आधार पर मुद्रा चिह्न को आउटपुट करने की अनुमति देते हैं।

हालांकि यह सच है कि आप मुद्रा के लिए एक स्ट्रिंग अक्षर प्रदान कर सकते हैं (उदाहरण के लिए, एक डॉलर चिह्न ($) ) डॉलर के लिए), यह मानता है कि मुद्रा उस हार्डकोडेड मूल्य में अंकित है। दुनिया भर में कई अन्य संभावित मुद्राएं हैं, और प्रारूप तत्व उपयोगकर्ता के सत्र के लिए स्थानीय मुद्रा प्रतीक को गतिशील रूप से वापस करने में सक्षम हैं।

उदाहरण

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:

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;

परिणाम:

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

इन तीन स्तंभों के बीच एकमात्र अंतर मुद्रा प्रारूप तत्व है। सबसे पहले L . का उपयोग करता है , दूसरा उपयोग करता है C , और तीसरा U . का उपयोग करता है ।

वे सभी fm . का उपयोग करते हैं किसी भी पैडिंग को दबाने के लिए प्रारूप संशोधक। वे 9 . का भी उपयोग करते हैं और 0 संख्याओं को आउटपुट करने के लिए तत्वों को प्रारूपित करें (0 तत्व में अग्रणी/पिछला शून्य शामिल हैं)। उनमें एक समूह विभाजक भी शामिल है (G . द्वारा दर्शाया गया है) ), एक दशमलव वर्ण (D . द्वारा दर्शाया गया है) )।

दोहरी मुद्राएं

उपरोक्त उदाहरण में, मैंने NLS_TERRITORY . सेट किया है से Australia . इसके परिणामस्वरूप तीन में से दो कॉलम (यानी r1 में एक ही मुद्रा चिन्ह लौटाया जा रहा है। और r3 कॉलम)।

निम्नलिखित उदाहरण में, मैं एक अलग क्षेत्र का उपयोग करता हूं:

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;

परिणाम:

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

इस बार हमें प्रत्येक r1 . के लिए एक भिन्न मुद्रा चिह्न प्राप्त हुआ है और r3 कॉलम।

देखें कि अगर आपको एनएलएस पैरामीटर्स के मूल्यों की जांच करने की ज़रूरत है तो उन्हें कैसे जांचें।

'nlsparam' तर्क

TO_CHAR() . का उपयोग करते समय फ़ंक्शन, 'nlsparam' तर्क का उपयोग दशमलव वर्ण और समूह विभाजक, स्थानीय मुद्रा प्रतीक और अंतर्राष्ट्रीय मुद्रा प्रतीक निर्दिष्ट करने के लिए किया जा सकता है।

यह निम्नलिखित रूप लेता है:

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

उदाहरण:

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

परिणाम:

€1.234,56

यहाँ यह फिर से है, लेकिन इस बार मैं L . को बदल रहा हूँ C . के साथ प्रारूप मॉडल में:

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

परिणाम:

EUR1.234,56

C ISO मुद्रा प्रतीक लौटाता है, जो इस मामले में EUR . है ।

Oracle में संख्या प्रारूप तत्वों की यह पूरी सूची प्रारूप तत्वों की सूची के लिए देखें जिनका उपयोग TO_CHAR() के साथ संख्याओं को प्रारूपित करने के लिए किया जा सकता है। समारोह।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल में डेटा का अनुवाद करने के लिए कोई फ़ंक्शन है?

  2. ईबीएस 12.2 विजन इंस्टेंस की स्थापना कैसे करें

  3. PRVG-2027 फ़ाइल का स्वामी सभी नोड्स में असंगत है

  4. Oracle डेटाबेस में VALUES-of बाउंड क्लॉज के साथ FORALL स्टेटमेंट

  5. Oracle SQL में केस स्टेटमेंट के भाग में उपनाम का उपयोग करना