समस्या यह है कि SQL*Plus & . के बाद पूरी स्ट्रिंग का इलाज कर रहा है , अगले व्हाइटस्पेस या सिमलर तक, प्रतिस्थापन चर नाम के रूप में। स्पष्ट रूप से आप यहाँ वही नहीं चाहते हैं।
सौभाग्य से उन्होंने इसके बारे में सोचा है, और आप वैरिएबल नाम के अंत को . :
FROM &3._TABLE
(कम से कम, यह नामित चर के लिए काम करता है, और मुझे लगभग यकीन है कि यह स्थितित्मक लोगों के लिए होगा ... यदि नहीं तो आपको &3 पर एक नया चर सेट परिभाषित करने की आवश्यकता होगी एक समाधान के रूप में)।
यह दस्तावेज में है , लेकिन पलक झपकते ही आप चूक जाएंगे:
एक संबंधित प्रभाव है जिसे आप भविष्य के लिए ध्यान में रखना चाह सकते हैं। यदि प्रतिस्थापन चर के बाद अगला वर्ण एक . वैसे भी - स्कीमा और टेबल के बीच, या टेबल और कॉलम के बीच, उदाहरण के लिए - तो उसे प्रतिस्थापन टर्मिनेटर के रूप में व्याख्या किया जाएगा। मान लें कि आप स्कीमा को अलग से &4 . के रूप में पास कर रहे थे , मान के साथ 'scott'; यह:
FROM &4.&3._TABLE
उचित लगता है लेकिन इसे scottdev_TABLE . के रूप में प्रतिस्थापित किया जाएगा , जिसे मान्यता नहीं दी जाएगी। तो उस उदाहरण में आपके पास एक अतिरिक्त होना चाहिए:
FROM &4..&3._TABLE
जिसे scott.dev_TABLE . के रूप में प्रतिस्थापित किया जाएगा ।