मैं ज्यादातर एक दैवज्ञ नौसिखिया हूँ, इसलिए मुझे माफ कर दो अगर यह एक बेवकूफ सवाल यह है कि के रूप में निष्पादित ...एक Oracle संग्रहित प्रोक एक अन्य उपयोगकर्ता
मैं एक स्कीमा एक संग्रहीत proc कि मनमाने ढंग से कार्यान्वित के साथ 'कोड' नामक एसक्यूएल (अभी के लिए, कृपया उससे जुड़े संभावित सुरक्षा मुद्दों को अनदेखा करें)। जो एसक्यूएल पास किया गया है वह डेटा का चयन करेगा; लेकिन सभी डेटा स्कीमा ए, बी, या सी में रहते हैं - लेकिन एसक्यूएल एक समय में केवल एक स्कीमा से ही चयन करेगा।
उदाहरण के लिए: प्रकार ए का उपयोगकर्ता एक स्ट्रिंग 'चयन * से * ASERTABLE' बनाता है - जबकि प्रकार बी के उपयोगकर्ता एक स्ट्रिंग 'चयन * से BUSERTABLE' बनाता है।
जो मैं करने की कोशिश कर रहा हूं वह उपयोगकर्ता को अपनी स्कीमा को स्पष्ट रूप से निर्दिष्ट करने की अनुमति नहीं देता है। फ्रंट एंड नेट एप्लिकेशन में; मुझे पहले से ही पता है कि वे टाइप ए, बी, या सी हैं। मैं चाहता हूं कि सभी तीन बस 'उपयोगकर्ता से चुनें' दर्ज करें।
मेरी समस्या यह है कि मुझे नहीं पता कि यह कैसे करना है। मेरा ऐप केवल 'कोड' स्कीमा में प्रो निष्पादित कर सकता है - इसलिए मैं कोड को डुप्लिकेट नहीं कर सकता और उपयोगकर्ता को 'एएक्सक्यूट एसक्यूएल' कॉल करने देता हूं।
मैंने कुछ चीजों की कोशिश की है; लेकिन अब तक कुछ भी काम नहीं किया है। मैं ExecuteSQL proc को कोड स्कीमा में रहना चाहता हूं; लेकिन जब 'USERTABLE' पास हो जाता है, तो मुझे यह जानने की आवश्यकता होती है कि कभी-कभी इसका अर्थ है AUSERNAME और कभी-कभी B.USERNAME।
कोई सुझाव?
यह कैसे काम करता है? पहला एप्लिकेशन इस 'ALTER' कथन को निष्पादित करता है या प्रक्रिया' कोड 'में निष्पादित करता है? – Guru
http://asktom.oracle.com/pls/asktom/f?p=100:11TP:::P11_QUESTION_ID:588045400346317188 में कुछ और जानकारी है। ऐसा लगता है कि आप इसे अपने संग्रहीत प्रो के अंदर गतिशील एसक्यूएल (तत्काल निष्पादित) के साथ कर सकते हैं। –
@ गुरू: रोब पी के AskTom लिंक देखें –