मैं इसे भूलता रहता हूं और फिर से इस पर वापस आता हूं! मुझे लगता है कि अब तक प्रदान की गई प्रतिक्रियाओं का संयोजन सबसे अच्छा उत्तर है।
सबसे पहले, &sqlplus/sqldeveloper में चर उपसर्ग है, इसलिए समस्या - जब यह प्रकट होता है, तो यह एक चर नाम का हिस्सा होने की उम्मीद है।
SET DEFINE OFF इस तरह से sqlplus की व्याख्या करना बंद कर देगा।
लेकिन क्या होगा यदि आपको sqlplus चर और . का उपयोग करने की आवश्यकता है शाब्दिक और वर्ण?
- वेरिएबल को काम करने के लिए आपको SET DEFINE ON की आवश्यकता है
- और &के उपयोग से बचने के लिए ESCAPE ON करें।
उदा.
set define on
set escape on
define myvar=/forth
select 'back\\ \& &myvar' as swing from dual;
उत्पादन:
old 1: select 'back\\ \& &myvar' from dual
new 1: select 'back\ & /forth' from dual
SWING
--------------
back\ & /forth
यदि आप किसी भिन्न एस्केप वर्ण का उपयोग करना चाहते हैं:
set define on
set escape '#'
define myvar=/forth
select 'back\ #& &myvar' as swing from dual;
जब आप एक विशिष्ट एस्केप कैरेक्टर सेट करते हैं, तो आप 'SP2-0272:एस्केप कैरेक्टर अल्फ़ान्यूमेरिक या व्हाइटस्पेस नहीं हो सकते' देख सकते हैं। इसका शायद मतलब है कि आपके पास पहले से ही बचने वाला चरित्र परिभाषित है, और चीजें बेहद आत्म-संदर्भित हो जाती हैं। इस समस्या से बचने का सबसे साफ तरीका है कि पहले पलायन को बंद कर दिया जाए:
set escape off
set escape '#'