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

NLS_INITCAP () Oracle में फ़ंक्शन

Oracle में, NLS_INITCAP() फ़ंक्शन अपरकेस में प्रत्येक शब्द के पहले अक्षर और लोअरकेस में अन्य सभी अक्षरों के साथ अपना तर्क देता है।

हालांकि, वास्तविक पूंजीकरण उपयोग किए जा रहे संयोजन पर निर्भर करेगा। उदाहरण के लिए, इसका परिणाम पहले अक्षर से अधिक बड़े अक्षरों में हो सकता है।

यह INITCAP() . के समान है फ़ंक्शन, सिवाय इसके कि यह एक दूसरा तर्क स्वीकार करता है जो आपको संयोजन निर्दिष्ट करने की अनुमति देता है। संयोजन केस रूपांतरणों के लिए विशेष भाषाई आवश्यकताओं को संभालता है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

NLS_INITCAP(char [, 'nlsparam' ])

जहां दोनों char और 'nlsparam' कोई भी डेटा प्रकार हो सकता है CHAR , VARCHAR2 , NCHAR , या NVARCHAR2

'nlsparam' तर्क के निम्नलिखित रूप हो सकते हैं:

'NLS_SORT = sort'

जहां sort एक नामित संयोजन है।

यदि आप इस तर्क को छोड़ देते हैं, तो फ़ंक्शन के निर्धारित संयोजन का उपयोग किया जाता है।

उदाहरण

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

SELECT NLS_INITCAP('the lake')
FROM DUAL;

परिणाम:

   NLS_INITCAP('THELAKE') 
_________________________ 
The Lake                 

एक संयोजन निर्दिष्ट करें

यहां एक उदाहरण दिया गया है जो दर्शाता है कि किसी मिलान को निर्दिष्ट करने से परिणाम कैसे बदल सकते हैं:

SELECT 
    NLS_INITCAP('het ijsselmeer') AS c1,
    NLS_INITCAP('het ijsselmeer', 'NLS_SORT = XDutch') AS c2
FROM DUAL;

परिणाम:

               C1                C2 
_________________ _________________ 
Het Ijsselmeer    Het IJsselmeer    

ध्यान दें कि दूसरे कॉलम में IJsselmeer . के पहले दो अक्षर हैं पूंजीकृत हैं, जबकि पहला स्तंभ केवल पहले अक्षर को बड़ा करता है।

डच में, ij एक अक्षर के रूप में माना जाता है, और इसलिए दोनों वर्णों को बड़े अक्षरों में तब लिखा जाता है जब वे किसी वाक्य या उचित नाम की शुरुआत में आते हैं।

ध्यान दें कि NLS_SORT निष्पादन के समय केवल पहले तर्क के संयोजन को ओवरराइड करता है। इसलिए, निम्न कथन पहले तर्क का मिलान देता है, दूसरे तर्क का नहीं:

SELECT
    COLLATION(NLS_INITCAP('het IJsselmeer', 'NLS_SORT = XDutch')) AS Collation
FROM DUAL;

परिणाम:

        COLLATION 
_________________ 
USING_NLS_COMP   

मिलान का विषय काफी जटिल हो सकता है। इस फ़ंक्शन के लिए संयोजन निर्धारण नियमों और संयोजन व्युत्पत्ति नियमों के लिए Oracle डेटाबेस वैश्वीकरण समर्थन मार्गदर्शिका में परिशिष्ट C देखें।

क्या होगा यदि मैं सभी अपरकेस अक्षरों को पास कर दूं?

सभी बड़े अक्षरों को पास करने से परिणाम नहीं बदलता:

SELECT 
    NLS_INITCAP('HET IJSSELMEER', 'NLS_SORT = XDutch') AS Result
FROM DUAL;

परिणाम:

           RESULT 
_________________ 
Het IJsselmeer    

शून्य मान

यदि कोई तर्क null है , परिणाम null . है :

SET NULL 'null';

SELECT 
    NLS_INITCAP('het IJsselmeer', null) AS r1,
    NLS_INITCAP(null, 'NLS_SORT = XDutch') AS r2,
    NLS_INITCAP(null, null) AS r3
FROM DUAL;

परिणाम:

     R1      R2      R3 
_______ _______ _______ 
null    null    null    

डिफ़ॉल्ट रूप से, SQLcl और SQL*Plus जब भी null . खाली स्थान लौटाते हैं SQL SELECT . के परिणामस्वरूप होता है बयान।

हालांकि, आप SET NULL . का उपयोग कर सकते हैं वापस करने के लिए एक अलग स्ट्रिंग निर्दिष्ट करने के लिए। यहाँ मैंने निर्दिष्ट किया है कि स्ट्रिंग null वापस किया जाना चाहिए।

गलत तर्क गणना

कॉलिंग NLS_INITCAP() कोई तर्क पारित किए बिना एक त्रुटि देता है:

SELECT NLS_INITCAP()
FROM DUAL;

परिणाम:

Error starting at line : 1 in command -
SELECT NLS_INITCAP()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

और तर्कों की गलत संख्या पास करने से त्रुटि होती है:

SELECT NLS_INITCAP('het IJsselmeer', 'NLS_SORT = XDUTCH', 3)
FROM DUAL;

परिणाम:

Error starting at line : 1 in command -
SELECT NLS_INITCAP('het IJsselmeer', 'NLS_SORT = XDUTCH', 3)
FROM DUAL
Error at Command Line : 1 Column : 59
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 -  "too many arguments for function"
*Cause:    
*Action:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PLSQL में गोटो लेबल कमांड का उपयोग करके नियंत्रण को विशिष्ट लाइन पर पास करें

  2. पीएल/एसक्यूएल सीखने के लिए विकास का माहौल तैयार करना

  3. ओरेकल एसक्यूएल डेवलपर में क्लॉब फील्ड डेटा कैसे निर्यात करें?

  4. ग्रिड इंफ्रास्ट्रक्चर को फिर से लिंक करें

  5. Oracle सबक्वेरी बाहरी ब्लॉक 2 स्तरों से चर नहीं देखता है