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

DECOMPOSE() Oracle में फंक्शन

Oracle डाटाबेस में, DECOMPOSE() फ़ंक्शन अपने स्ट्रिंग तर्क के लिए यूनिकोड अपघटनों में से एक को लागू करने का परिणाम देता है। अपघटन दूसरे (वैकल्पिक) तर्क द्वारा निर्धारित किया जाता है।

यह COMPOSE() . के विपरीत है समारोह।

सिंटैक्स

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

DECOMPOSE( string [, { 'CANONICAL' | 'COMPATIBILITY' } ] )

जहां दोनों तर्क CHAR . में से कोई भी हो सकते हैं , VARCHAR2 , NCHAR , या NVARCHAR2 डेटा प्रकार, या एक प्रकार जिसे परोक्ष रूप से VARCHAR2 . में परिवर्तित किया जा सकता है या NVARCHAR2

(वैकल्पिक) दूसरे तर्क के संबंध में:

  • CANONICAL यूनिकोड मानक परिभाषा D68 में वर्णित के रूप में विहित अपघटन में परिणाम, और NFD सामान्यीकरण रूप में एक स्ट्रिंग देता है।
  • COMPATIBILITY यूनिकोड मानक परिभाषा D65 में वर्णित अनुसार संगतता अपघटन में परिणाम, और NFKD सामान्यीकरण प्रपत्र में एक स्ट्रिंग देता है।

विहित अपघटन को लागू करने के लिए डिफ़ॉल्ट व्यवहार है।

उदाहरण

यहां एक उदाहरण दिया गया है:

SELECT DECOMPOSE('ã') FROM DUAL;

परिणाम:

हालांकि, निम्न उदाहरण एक बेहतर प्रदर्शन है:

SELECT ASCIISTR(DECOMPOSE('ã')) FROM DUAL;

परिणाम:

a\0303

यहाँ, हमने ASCIISTR() . का प्रयोग किया है DECOMPOSE() . के परिणाम का ASCII संस्करण लौटाने के लिए डेटाबेस कैरेक्टर सेट में।

अगर हम ASCIISTR() . का उपयोग करते हैं तो यहां क्या होता है? बिना DECOMPOSE() . के :

SELECT ASCIISTR('ã') FROM DUAL;

परिणाम:

\00E3

गैर यूनिकोड वर्ण

यदि तर्क का वर्ण सेट यूनिकोड वर्ण सेट में से एक नहीं है, तो तर्क बिना संशोधित किए वापस आ जाता है।

उदाहरण:

SELECT ASCIISTR(DECOMPOSE('a')) FROM DUAL;

परिणाम:

a

शून्य तर्क

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

SET NULL 'null';
SELECT DECOMPOSE(null)
FROM DUAL;

परिणाम:

null

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

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

अवैध तर्क गणना

कॉलिंग DECOMPOSE() बिना किसी तर्क के त्रुटि उत्पन्न होती है:

SELECT DECOMPOSE()
FROM DUAL;

परिणाम:

SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"

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

SELECT DECOMPOSE('a', 'b')
FROM DUAL;

परिणाम:

Error report -
ORA-12702: invalid NLS parameter string used in SQL function

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle डाटाबेस में PL/SQL एक्सेप्शन हैंडलिंग का परिचय

  2. ओरेकल इंडेक्स और ओरेकल में इंडेक्स के प्रकार उदाहरण के साथ

  3. डेटा के पदानुक्रम से परिभाषित सेट की एक चपटी तालिका/दृश्य बनाना

  4. कैसे Oracle में नियमित अभिव्यक्ति से समूह निकालने के लिए?

  5. किसी कनेक्टेड उपयोगकर्ता को Oracle 10g डेटाबेस स्कीमा से हटाना