2012-02-21 14 views
5

मेरे पास sqldeveloper में विभिन्न तालिकाओं के साथ 2 कनेक्शन हैं। तालिकाओं के साथsqldeveloper में विभिन्न ऑरैकल कनेक्शन से क्वेरी

ConnectionA:

मान लें कि ए, बी, सी साथ टेबल ConnectionB:

: डी, ​​ई, एफ

अब मैं एक प्रश्न है कि इस तरह दिखता है करना चाहते हैं aa aa नाम, डीडी.आईडी एए, डी डीडी से चुनें;

मैं यह कैसे कर सकता हूं?

+2

टेबल्स विशिष्ट नहीं हैं। शायद आप स्कीमा मतलब है? –

+0

sqldeveloper में आप कनेक्शन बना सकते हैं जिनकी अपनी टेबल – user999379

+4

@ user999379 - कनेक्शन में टेबल नहीं हैं। कनेक्शन आपको किसी विशेष डेटाबेस के रूप में किसी विशेष उपयोगकर्ता के रूप में लॉग इन करने की अनुमति देता है जो किसी विशेष वस्तु (स्कीमा) का मालिक होता है। कनेक्शन किसी भी वस्तु का मालिक नहीं है। –

उत्तर

9

यदि आप एकल SQL कथन का उपयोग करके दो अलग-अलग डेटाबेस में ऑब्जेक्ट्स से क्वेरी करना चाहते हैं, तो आपको दो डेटाबेस के बीच डेटाबेस लिंक बनाना होगा। डेटाबेस लिंक एक ऑब्जेक्ट है जो डेटाबेस में रहता है और क्वेरी टूल से स्वतंत्र है। डेटाबेस एक में, उदाहरण के लिए, आप डेटाबेस लिंक

CREATE DATABASE LINK to_b 
    CONNECT TO username IDENTIFIED BY password 
    USING tns_alias_on_a_pointing_to_b 

और बना सकते हैं फिर जब आप एक से कनेक्ट, आप

SELECT aa.name, dd.id 
    FROM a aa, 
     [email protected]_b dd 
WHERE aa.some_key = dd.some_key 
+0

मुझे यह त्रुटि मिलती है: एसक्यूएल त्रुटि: ओआरए -12154: टीएनएस: – user999379

+0

@ user999379 निर्दिष्ट कनेक्ट पहचानकर्ता को हल नहीं कर सका - मुझे यह त्रुटि मिलती है, मुझे लगता है, जब आप 'SELECT' कथन चलाते हैं? जब आप डेटाबेस लिंक बनाते हैं, तो TNS उपनाम डेटाबेस ए पर मौजूद होना आवश्यक है और डेटाबेस बी को इंगित करने की आवश्यकता है। बी को इंगित करने पर टीएनएस उपनाम आपके स्थानीय सिस्टम में परिभाषित टीएनएस उपनाम से भिन्न हो सकता है (विशेष रूप से यदि आप हैं स्थानीय tnsnames.ora फ़ाइल के साथ स्थानीय नामकरण का उपयोग कर)। –

+1

हमारे पास एक "लाइव" डेटाबेस और एक "डेमो" डेटाबेस एक ही ओरेकल डीबी सर्वर पर चल रहा है। वे दोनों एक ही tnsnames.ora फ़ाइल में स्थापित हैं। तो मेरे लिए यह मेरे लाइव कनेक्शन के तहत इस कथन को निष्पादित करने जितना आसान था: 'डेटाबैक लिंक' डेमोडब 'का उपयोग करके डीमैडबेस बनाएं;' जहां demodb tnsnames.ora में हमारे डेमो डेटाबेस का एसआईडी है। अब मैं टेबल नाम के अंत में @demodb को जोड़कर अपने लाइव डीबी कनेक्शन से डेमो डेटाबेस टेबल से पूछताछ कर सकता हूं। – Baodad

1

की तरह कुछ जाहिर TOAD Data Pointक्रॉस कनेक्शन क्वेरीज़ का समर्थन करता है कर सकता है, देखें:

http://dev.toadfordataanalyst.com/webhelp/Content/Query_Builder/Create_CrossConnection_Queries.htm

इसके अलावा Oracle SQL Developer समर्थन करने वालों को लगता है कुछ समान नहीं है। (इस ब्लॉग पोस्ट को देखें: Cross Connection Queries)

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^