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

दशमलव के लिए NLS_NUMERIC_CHARACTERS सेटिंग

आप nls_session_parameters . को क्वेरी करके अपनी वर्तमान सत्र सेटिंग देख सकते हैं :

select value
from nls_session_parameters
where parameter = 'NLS_NUMERIC_CHARACTERS';

VALUE                                  
----------------------------------------
.,                                       

यह डेटाबेस डिफ़ॉल्ट से भिन्न हो सकता है, जिसे आप nls_database_parameters में देख सकते हैं ।

इस सत्र में आपकी क्वेरी त्रुटियाँ:

select to_number('100,12') from dual;

Error report -
SQL Error: ORA-01722: invalid number
01722. 00000 -  "invalid number"

मैं अपना सत्र बदल सकता हूं, या तो सीधे alter session . के साथ या यह सुनिश्चित करके कि मेरे क्लाइंट को इस तरह से कॉन्फ़िगर किया गया है जिससे स्ट्रिंग की जरूरतें पूरी हो जाती हैं (उदाहरण के लिए, इसे ऑपरेटिंग सिस्टम या जावा लोकेल से इनहेरिट किया जा सकता है):

alter session set NLS_NUMERIC_CHARACTERS = ',.';
select to_number('100,12') from dual;

TO_NUMBER('100,12')
-------------------
             100,12 

SQL डेवलपर में आप Tool->Preferences->Database->NLS में अपना पसंदीदा मान सेट कर सकते हैं।

लेकिन मैं वैकल्पिक तीसरे nlsparam के साथ, क्वेरी के भाग के रूप में उस सत्र सेटिंग को ओवरराइड भी कर सकता हूं to_number() . के लिए पैरामीटर; हालांकि यह वैकल्पिक दूसरा fmt . बनाता है पैरामीटर भी आवश्यक है, इसलिए आपको एक उपयुक्त प्रारूप चुनने में सक्षम होने की आवश्यकता होगी:

alter session set NLS_NUMERIC_CHARACTERS = '.,';
select to_number('100,12', '99999D99', 'NLS_NUMERIC_CHARACTERS='',.''')
from dual;

TO_NUMBER('100,12','99999D99','NLS_NUMERIC_CHARACTERS='',.''')
--------------------------------------------------------------
                                                        100.12 

डिफ़ॉल्ट रूप से परिणाम अभी भी मेरी सत्र सेटिंग्स के साथ प्रदर्शित होता है, इसलिए दशमलव विभाजक अभी भी एक अवधि है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं SQLPLUS का उपयोग करके CSV स्वरूपित फ़ाइल में कैसे स्पूल करूँ?

  2. Oracle में वैज्ञानिक संकेतन में संख्याओं को कैसे प्रारूपित करें

  3. NLS_UPPER () Oracle में फ़ंक्शन

  4. Oracle ISNULL () समतुल्य

  5. Oracle का JDBC क्वेरी टाइमआउट कैसे कार्यान्वित किया जाता है?