Obtain stored procedure metadata for a procedure within an Oracle package using ADO.NET -


मैं एक प्रक्रिया के लिए संग्रहीत कार्यविधि मेटाडेटा (प्रक्रिया नाम, पैरामीटर प्रकार, पैरामीटर नाम आदि) प्राप्त करने की कोशिश कर रहा हूं मानक ADO.NET API - DbConnection.GetSchema कॉल का उपयोग करके ओरेकल पैकेज। मैं ओडीपी ड्राइवर का उपयोग कर रहा हूं।

मुझे पता है कि पैकेज 'पैकेज' और 'पैकेज बॉडीज' मेटाडेटा संग्रह में सूचीबद्ध है। प्रक्रिया पैरामीटर 'तर्क' और 'प्रक्रिया' पैरामीटर 'संग्रह में दिखाई देता है। मुझे पैकेज मेटाडेटा के माध्यम से प्रक्रिया जानकारी प्राप्त करने का एक तरीका दिखाई नहीं देता I यहां तक ​​कि अगर इस प्रक्रिया में कोई भी पैरामीटर नहीं है, तो इस प्रक्रिया के लिए 'प्रोसिजोरपैमेटर्स' संग्रह में एक पंक्ति है।

मेरा प्रश्न: प्रक्रिया मेटाडेटा प्राप्त करने के लिए मुझे 'प्रोसिअरपोरैमेटर्स' का संग्रह और खोज करना है आवश्यक पैकेज नाम के साथ एक प्रविष्टि के लिए? फिर मैं पैरामीटर सूचना के आधार पर प्रक्रिया मेटाडेटा का निर्माण कर सकता हूं। क्या समान जानकारी प्राप्त करने के लिए कोई छोटा या तेज तरीका है?

मुझे यकीन नहीं है कि आप कैसे ' एडीओ। नेट का उपयोग करके इसे प्राप्त करें, लेकिन आप इस जानकारी को सीधे प्राप्त करने के लिए डेटाबेस से सीधे पूछ सकते हैं:

एक बार जब आप उपरोक्त क्वेरी चलाते हैं, तो आपके पास एक परिणाम सेट होगा, जिसमें अन्य बातों के अलावा, PROCEDURE_NAME है। पैकेज का नाम और PROCEDURE_NAME को देखते हुए, आप निम्न क्वेरी का उपयोग करके पैरामीटर जानकारी पा सकते हैं:

  SELECT। से SYS.ALL_ARGUMENTS WHERE PACKAGE_NAME = '& lt; आपके पैकेज का नाम यहां & gt;' और OBJECT_NAME = '& lt; PROCEDURE_NAME क्वेरी से ऊपर & gt;';  

साझा और आनंद लें।


Comments