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

Oracle में N'String' बनाम U'String' अक्षर के बीच अंतर

इस उत्तर में मैं आधिकारिक संसाधनों से जानकारी प्रदान करने का प्रयास करूंगा

(1) द एन'' टेक्स्ट लिटरल

N'' एक स्ट्रिंग को NCHAR . में बदलने के लिए प्रयोग किया जाता है या NVARCHAR2 डेटाटाइप

Oracle के इस दस्तावेज़ के अनुसार Oracle - Literals

<ब्लॉककोट>

टेक्स्ट लिटरल का सिंटैक्स इस प्रकार है:

जहां N या N राष्ट्रीय वर्ण सेट (NCHAR . का उपयोग करके शाब्दिक को निर्दिष्ट करता है या NVARCHAR2 डेटा)।

इस दूसरे लेख में भी Oracle - डेटाटाइप्स

N'String' एक स्ट्रिंग को NCHAR . में बदलने के लिए प्रयोग किया जाता है डेटाटाइप

ऊपर सूचीबद्ध लेख से:

<ब्लॉककोट>

निम्न उदाहरण translated_description की तुलना करता है pm.product_descriptions . का कॉलम राष्ट्रीय वर्ण सेट स्ट्रिंग . के साथ तालिका :

SELECT translated_description FROM product_descriptions
  WHERE translated_name = N'LCD Monitor 11/PM';

(2) द यू'' लिटरल

U'' Oracle कॉल इंटरफ़ेस (OCI) में SQL NCHAR स्ट्रिंग लिटरल को हैंडल करने के लिए उपयोग किया जाता है

इस Oracle दस्तावेज़ पर आधारित यूनिकोड के साथ प्रोग्रामिंग करना

<ब्लॉककोट>

Oracle कॉल इंटरफ़ेस (ओसीआई) निम्नतम स्तर का एपीआई है जिसका उपयोग बाकी क्लाइंट-साइड डेटाबेस एक्सेस उत्पाद करते हैं। यह SQL CHAR . में संग्रहीत यूनिकोड डेटा तक पहुंचने के लिए C/C++ प्रोग्राम के लिए एक लचीला तरीका प्रदान करता है और NCHAR डेटा के प्रकार। ओसीआई का उपयोग करके, आप डेटा डालने या पुनर्प्राप्त करने के लिए प्रोग्रामेटिक रूप से वर्ण सेट (यूटीएफ -8, यूटीएफ -16, और अन्य) निर्दिष्ट कर सकते हैं। यह Oracle नेट के माध्यम से डेटाबेस तक पहुँचता है।

<ब्लॉककोट>

डेटाबेस तक पहुँचने के लिए OCI निम्नतम-स्तरीय API है, इसलिए यह सर्वोत्तम संभव प्रदर्शन प्रदान करता है।

<ब्लॉककोट>

ओसीआई में एसक्यूएल एनसीएचएआर स्ट्रिंग लिटरल्स को संभालना

आप पर्यावरण चर ORA_NCHAR_LITERAL_REPLACE सेट करके इसे चालू कर सकते हैं करने के लिए TRUE . आप OCI_NCHAR_LITERAL_REPLACE_ON का उपयोग करके प्रोग्रामेटिक रूप से भी इस व्यवहार को प्राप्त कर सकते हैं और OCI_NCHAR_LITERAL_REPLACE_OFF OCIEnvCreate() में मोड और OCIEnvNlsCreate() . इसलिए, उदाहरण के लिए, OCIEnvCreate(OCI_NCHAR_LITERAL_REPLACE_ON) NCHAR on को चालू करता है शाब्दिक प्रतिस्थापन, जबकि OCIEnvCreate(OCI_NCHAR_LITERAL_REPLACE_OFF) इसे बंद कर देता है।

[...] ध्यान दें, जब NCHAR शाब्दिक प्रतिस्थापन चालू है, OCIStmtPrepare और OCIStmtPrepare2 बदलेगा N' U' . के साथ अक्षर एसक्यूएल टेक्स्ट में अक्षर और परिणामी एसक्यूएल टेक्स्ट को स्टेटमेंट हैंडल में स्टोर करें . इस प्रकार, यदि एप्लिकेशन OCI_ATTR_STATEMENT . का उपयोग करता है OCI . से SQL टेक्स्ट पुनर्प्राप्त करने के लिए स्टेटमेंट हैंडल, SQL टेक्स्ट U' लौटाएगा N' . के बजाय जैसा कि मूल पाठ में निर्दिष्ट है

(3) आपके प्रश्न का उत्तर

डेटाटाइप के दृष्टिकोण से, प्रदान की गई दोनों क्वेरीज़ में कोई अंतर नहीं है



  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 में एक तिथि से दिन प्राप्त करने के 2 तरीके

  3. संख्याओं की एक श्रृंखला से किसी भी लापता संख्या की जांच कैसे करें?

  4. लोब प्रतिधारण

  5. Oracle डाटाबेस में PL/SQL Ref Cursors का परिचय