ऐसा लगता है कि आपने अपने डीडीएल में कोट्स के तहत कॉलम नाम निर्दिष्ट किए हैं।
Oracle एक केस संवेदनशील के रूप में उद्धरणों के तहत पहचानकर्ताओं को मानता है, इसलिए "बॉडी" या "वर्ष" के रूप में एक कॉलम नाम के साथ एक टेबल बनाने से आपकी क्वेरी में बॉडी या वर्ष का समाधान नहीं होगा, क्योंकि जब आप कोट्स को छोड़ देते हैं, तो यह अपर केस वेरिएंट पर विचार करता है।
तो जब आपके पास यह हो:
create table driver_case (registration varchar2(60),
make varchar2(60),
model varchar2(60),
gvw number,
"year" number,
"body" varchar2(60));
और फिर ऐसा करने का प्रयास करें
select year, body from driver_case
तब Oracle कॉलम "YEAR", "BODY" को खोजने की कोशिश करता है (याद रखें, बिना कोट्स के पहचानकर्ता के बिना अपर केस में कनवर्ट हो जाता है) जो आपकी टेबल में "वर्ष", "बॉडी" जैसा नहीं है।
आपके समाधान?
- डीडीएल में उद्धरणों के तहत कॉलम नामों का उल्लेख न करें
- यदि आप उपरोक्त बिंदु की अवहेलना करते हैं, तो आपको जरूरी अपने सभी डीएमएल स्टेटमेंट में कोट्स के तहत कॉलम नामों का उल्लेख करें।
मैं उपरोक्त बिंदु को इस SQL Fiddle में प्रदर्शित करता हूं