'ट्रिनिडाड और टोबैगो' के साथ ओरेकल SQL डेवलपर में परिवर्तनीय प्रतिस्थापन से कैसे बचें


111

जब मैं ओरेकल एसक्यूएल डेवलपर 2.1 में इस कथन को निष्पादित करने का प्रयास करता हूं, तो एक डायलॉग बॉक्स "एंटर सब्स्टीट्यूशन वैरिएबल" पॉप अप करता है जो TOBAGO के लिए एक प्रतिस्थापन मूल्य पूछ रहा है ,

update t set country = 'Trinidad and Tobago' where country = 'trinidad & tobago';

मैं बयान के उद्देश्य को अस्पष्ट करने के लिए chr(38)या u'trinidad \0026 tobago'दोनों का सहारा लिए बिना कैसे इससे बच सकता हूं ?


1
यह अजीब है, जब मैंने SQL डेवलपर 2.1 में ठीक उसी तरह एक क्वेरी चलाने का प्रयास किया, जो मुझे प्रतिस्थापन चर खिड़की नहीं मिली? (और मेरे परिभाषित करता है सबसे निश्चित रूप से पर की तैयारी में हैं)
wasatz

इस सवाल से मुझे बहुत मदद मिली।
ओह चिन बून

जवाबों:


191

क्वेरी से पहले इसे कॉल करें:

set define off;

वैकल्पिक रूप से, हैक:

update t set country = 'Trinidad and Tobago' where country = 'trinidad &' || ' tobago';

से ट्यूनिंग एसक्यूएल * प्लस :

SET DEFINE OFF उनके मान के साथ प्रतिस्थापन चर को बदलने के लिए आदेशों के पार्सिंग को अक्षम करता है।


9
क्या (और) करता set define off;है?
Xonatron

15

एसक्यूएल * प्लस SET DEFINE ?में स्क्रिप्ट के शीर्ष पर डालने से यह सामान्य रूप से हल हो जाएगा। Oracle SQL डेवलपर के लिए भी काम कर सकते हैं।


2
सेट ठीक करें? SQL डेवलपर 2.1 में चर प्रतिस्थापन व्यवहार को दबा देता है। जैसा कि Nick SET DEFINE OFF ने भी बताया है।
जनेक बोगुकी

निर्धारित कार्य निर्धारित करता है लेकिन DBA इसे कभी-कभी उपयोग करने की अनुमति नहीं देता है, पता नहीं क्यों
nikhil sugandh

1

यह आपके द्वारा CHAR (38) के बिना पूछे जाने पर काम करेगा:

update t set country = 'Trinidad and Tobago' where country = 'trinidad & '|| 'tobago';

create table table99(col1 varchar(40));
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
SELECT * FROM table99;

update table99 set col1 = 'Trinidad and Tobago' where col1 = 'Trinidad &'||'  Tobago';

मेरा सवाल था कि यह कैसे उपयोग किए बिना किया जा सकता है chr(38)
जनेक बोगुकी

@JanekBogucki इसे CHAR (38) का उपयोग किए बिना इसे अभी ठीक कर लें
nikhil sugandh

मैंने आपको एक अलग उत्तर दिया क्योंकि आपके पास पहले से ही हरे टिके हुए उत्तर हैं, लेकिन आपने अस्वीकार कर दिया है
nikhil sugandh

मेट आप कल्पना नहीं कर सकते कि आपके लिए मेरे द्वारा हल की गई पीड़ा क्या है, जब आप स्क्रिप्ट चलाते हैं तो sql डेवलपर सेट अप को स्वीकार नहीं करता है। मेरे लिए यह समाधान
BrokenFrog

-3

मुझे इसके आसपास भी कुछ समस्या हो रही थी। कुछ शुरू हो रहा था हर बार मैंने किसी डीबी से संबंध स्थापित करने की कोशिश की।

मेरे लिए जो काम किया गया था वह किसी भी स्टार्टअप स्क्रिप्ट को हटा रहा था जिसे आपने कॉन्फ़िगर किया होगा!

यानी Tools>Preferences...>Database"कनेक्शन स्टार्टअप स्क्रिप्ट के लिए फ़ाइलनाम" नामक पाठ बॉक्स में आपके पास मौजूद किसी भी फ़ाइल पथ को हटा दें!


-3

स्कैन बंद करें; ऊपर का कमांड भी काम करता है।


यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण मांगने या उसका अनुरोध करने के लिए, उनकी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपने स्वयं के पोस्ट पर टिप्पणी कर सकते हैं, और एक बार जब आप पर्याप्त प्रतिष्ठा अर्जित कर लेंगे तो आप किसी भी पोस्ट पर टिप्पणी कर पाएंगे। यदि आपके पास संबंधित लेकिन अलग सवाल है, तो इसे संदर्भित करने के लिए एक नया प्रश्न पूछें यदि यह संदर्भ प्रदान करने में मदद करेगा।
रोहन खूद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.