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

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

Oracle में, LENGTH() फ़ंक्शन अपने तर्क की लंबाई लौटाता है।

LENGTH() कार्यों के समूह के रूप में भी सोचा जा सकता है। पाँच अलग-अलग कार्य हैं; LENGTH() , LENGTHB() , LENGTHC() , LENGTH2() , और LENGTH4() . प्रत्येक फ़ंक्शन लंबाई की गणना अलग तरीके से करता है।

सिंटैक्स

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

{ LENGTH
| LENGTHB
| LENGTHC
| LENGTH2
| LENGTH4
}
(char)

फ़ंक्शन लंबाई की गणना इस प्रकार करते हैं:

कार्य उपयोग करके लंबाई की गणना करता है…
LENGTH() इनपुट वर्ण सेट द्वारा परिभाषित वर्ण, स्ट्रिंग के पहले वर्ण के साथ स्थिति 1 है।
LENGTHB() बाइट्स
LENGTHC() यूनिकोड पूर्ण वर्ण
LENGTH2() UCS2 कोड अंक
LENGTH4() UCS4 कोड अंक

तर्क प्रकार इस प्रकार हो सकता है:

  • LENGTH() का उपयोग करते समय और LENGTHB() सिंटैक्स, तर्क कोई भी डेटा प्रकार हो सकता है CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , या NCLOB .
  • LENGTHC() का उपयोग करते समय , LENGTH2() और LENGTH4() सिंटैक्स, तर्क कोई भी डेटा प्रकार हो सकता है CHAR , VARCHAR2 , NCHAR , NVARCHAR2 (लेकिन नहीं CLOB या NCLOB )।

उदाहरण

यहां एक बुनियादी उदाहरण दिया गया है:

SELECT LENGTH('Big fat cat')
FROM DUAL;

परिणाम:

11

की तुलना में LENGTHB()

यह उदाहरण दिखाता है कि आप किस विशिष्ट फ़ंक्शन का उपयोग कर रहे हैं, और इसमें शामिल वर्ण सेट के आधार पर परिणाम कैसे भिन्न हो सकते हैं।

इस मामले में, हम तुलना करते हैं LENGTH() LENGTHB() . के साथ :

SELECT 
    LENGTH('Böyük yağlı pişik') AS LENGTH,
    LENGTHB('Böyük yağlı pişik') AS LENGTHB
FROM DUAL;

परिणाम:

   LENGTH    LENGTHB 
_________ __________ 
       17         22

हम देख सकते हैं कि दो कार्यों ने दो अलग-अलग परिणाम दिए। ऐसा इसलिए है क्योंकि इस स्ट्रिंग में कुछ वर्ण दो बाइट्स का उपयोग करते हैं।

LENGTH() फ़ंक्शन इनपुट वर्ण सेट द्वारा परिभाषित वर्णों में लंबाई देता है, जबकि LENGTHB() फ़ंक्शन लंबाई को बाइट्स . में लौटाता है ।

यदि हम मूल स्ट्रिंग पर लौटते हैं, तो परिणाम दो कार्यों के बीच समान होते हैं:

SELECT 
    LENGTH('Big fat cat') AS LENGTH,
    LENGTHB('Big fat cat') AS LENGTHB
FROM DUAL;

परिणाम:

   LENGTH    LENGTHB 
_________ __________ 
       11         11 

यह स्ट्रिंग प्रति वर्ण केवल एक बाइट का उपयोग करती है, और इसलिए बाइट्स में लंबाई वर्णों की संख्या के समान होती है।

शून्य तर्क

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

SET NULL 'null';
SELECT 
    LENGTH(null) AS LENGTH,
    LENGTHB(null) AS LENGTHB,
    LENGTHC(null) AS LENGTHC,
    LENGTH2(null) AS LENGTH2,
    LENGTH4(null) AS LENGTH4
FROM DUAL;

परिणाम:

   LENGTH    LENGTHB    LENGTHC    LENGTH2    LENGTH4 
_________ __________ __________ __________ __________ 
     null       null       null       null       null 

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

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

गलत तर्क गणना

कोई तर्क पारित किए बिना फ़ंक्शन को कॉल करने से त्रुटि होती है:

SELECT LENGTH()
FROM DUAL;

परिणाम:

Error starting at line : 1 in command -
SELECT LENGTH()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

और बहुत अधिक तर्क देने से भी त्रुटि होती है:

SELECT LENGTH('Big fat cat', 'oops')
FROM DUAL;

परिणाम:

Error starting at line : 1 in command -
SELECT LENGTH('Big fat cat', 'oops')
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*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. सीएसवी फ़ाइल के लिए एक ही समय में अल्पविराम और दोहरे उद्धरण से कैसे बचें?

  2. Oracle में TABLE को कैसे छोटा करें

  3. वापसी पंक्तियाँ जिनमें Oracle में संख्यात्मक मान होते हैं

  4. Oracle PL/SQL - कस्टम SQLERRM के साथ उपयोगकर्ता-परिभाषित अपवाद उठाएँ

  5. योजना लागत दर्द बिंदु की व्याख्या करें