में शामिल है मेरे पास एक क्वेरी है जो दो टेबल में शामिल हो जाती है। एक तालिका में एक स्तंभ होता है जो प्रकार वर्कर होता है, और दूसरी तालिका में संख्या का प्रकार होता है। मैंने 3 ऑरैक डेटाबेस पर अपनी क्वेरी निष्पादित की है, और कुछ अजीब परिणाम देख रहा हूं, मुझे आशा है कि मुझे समझाया जा सकता है। दो डेटाबेस पर निम्नलिखित कार्यों की तरह कुछ।ओरेकल नंबर और वर्कर
select a.col1, b.somecol
from tableA a inner join tableB b on b.col2=a.col1;
इस क्वेरी में tableA.col1 प्रकार संख्या और tableB.col2 प्रकार वर्कर है। यह दो डेटाबेस में ठीक काम करता है लेकिन तीसरे में नहीं। तीसरे में मुझे (ओआरए -01722) त्रुटि मिलती है। तीसरे में मुझे कुछ ऐसा करने की ज़रूरत है ...
select a.col1, b.somecol
from tableA a inner join tableB b on b.col2=to_char(a.col1);
यह सभी डेटाबेस में काम करता है। मेरे पास सवाल क्यों है? उपर्युक्त एक सरल क्वेरी है, और असली क्वेरी थोड़ा अधिक जटिल है और बहुत सारे डेटा पुनर्प्राप्त करती है, इसलिए पहला संस्करण बहुत तेज़ है। अगर मैं इसे सभी वातावरण में काम करने के लिए प्राप्त कर सकता हूं तो यह बहुत अच्छा होगा।
क्या किसी को पता है कि यह कुछ ऑरैकल डेटाबेस में क्यों काम कर सकता है और दूसरों को डेटाटाइप पर कलाकारों के बिना नहीं? क्या कोई वैश्विक सेटिंग है जो इस तरह के व्यवहार को सक्षम करती है?
मिलान मेरी पहली अनुमान होगा। ओरेकल आम तौर पर अंतर्निहित रूपांतरण की अनुमति देता है, इसलिए यह हो सकता है कि एक कॉलम अंतर्निहित रूपांतरण पास न करे ... –
आपने उन सभी शब्दों को लिखा है और आपने अभी भी सटीक रूप से व्याख्या करने का प्रबंधन नहीं किया है * कैसे * पहली क्वेरी में काम नहीं करता है तीसरा डेटाबेस – APC
क्षमा करें, मुझे पहली क्वेरी में ओआरए -01722 त्रुटि मिलती है, तीसरा डेटाबेस – broschb