इस उत्तर में मैं आधिकारिक संसाधनों से जानकारी प्रदान करने का प्रयास करूंगा
(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) आपके प्रश्न का उत्तर
डेटाटाइप के दृष्टिकोण से, प्रदान की गई दोनों क्वेरीज़ में कोई अंतर नहीं है