ध्यान रखें कि आप किसी संख्या को एक स्ट्रिंग में बदल रहे हैं। संख्या में "," या "" का कोई अर्थ नहीं है। या कुछ भी - यह एक संख्या है।
चाल TO_CHAR
. प्राप्त करने की है आंतरिक संख्या को अपने इच्छित स्ट्रिंग प्रतिनिधित्व में बदलने के लिए कार्य करता है। चिंता करने के लिए कुछ समस्याएं हैं:मूलांक बिंदु (दशमलव) को सही करना और पैडिंग से निपटना।
यहां एक कार्यशील उदाहरण दिया गया है:
SELECT to_char(0.00235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
0,00235
SELECT to_char(156.45823,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
156,45823
SELECT to_char(-0.0235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-0,0235
SELECT to_char(-156.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-156,45623
SELECT to_char(123456789.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
123456789,45623
मास्क के प्रासंगिक भाग:
FM
अग्रणी और अनुगामी रिक्त स्थान को ट्रिम करने के लिए उपयोग किया जाता है जिसका उपयोग Oracle सामान्य रूप से संख्याओं को पैड आउट करने के लिए करता है।
D
आपकी NLS सेटिंग के आधार पर मूलांक बिंदु है।
NLS_NUMERIC_CHARACTERS ...
आपकी स्थानीय एनएलएस सेटिंग्स का ओवरराइड है--यह आवश्यक नहीं हो सकता है यदि आपका लोकेल दशमलव के लिए अल्पविराम का उपयोग करता है, लेकिन यह एक ऐसा तरीका है जिससे आप डेटाबेस में इस व्यवहार को उत्तर अमेरिकी सेटिंग्स के साथ मजबूर कर सकते हैं।