Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

PLS-00382:फ़ंक्शन निष्पादित करके अभिव्यक्ति गलत प्रकार की है और रिटर्नटाइप को एक चर में डालने का प्रयास करें

आप एक ही पैकेज में रिकॉर्ड प्रकार, संग्रह/तालिका प्रकार और कार्य घोषित कर रहे हैं।

जब आप फ़ंक्शन को कॉल करते हैं तो आपको उस पैकेज से उसी प्रकार का उपयोग करना होता है।

लेकिन ऐसा नहीं है। इसकी संरचना समान है - फ़ील्ड और डेटाटाइप - लेकिन जहाँ तक Oracle का संबंध है वैसा नहीं है। Oracle को यह जानना आवश्यक है कि बिल्कुल उसी प्रकार का उपयोग किया जा रहा है, आंशिक रूप से ताकि यह वस्तुओं के बीच निर्भरता का ट्रैक रख सके।

आपके अनाम ब्लॉक को अपने स्वयं के - समान लेकिन परस्पर विरोधी - प्रकार (प्रकारों) को घोषित करने के बजाय पैकेज प्रकारों को संदर्भित करने की आवश्यकता है:

DECLARE
    managers hr_package.managers_table_type;
BEGIN
    managers := hr_package.managers_multiple_departments;
END;

एक बोनस के रूप में इसमें बहुत कम टाइपिंग शामिल है, और इसका मतलब है कि आपको डुप्लिकेट प्रकारों को प्रबंधित करने की आवश्यकता नहीं है।

हालांकि, इसका मतलब यह भी है कि प्रकार की घोषणाएं पैकेज विनिर्देश में होनी चाहिए - जो कि किसी भी चीज के मामले में है जिसे आप सार्वजनिक रूप से दिखाना चाहते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Sql लोडर ORA-01722:Windows लाइन के अंत के साथ CSV फ़ाइल लोड करते समय अमान्य संख्या

  2. कनेक्शन खो जाने पर SQL सर्वर से Oracle सर्वर पर OpenQuery अनिश्चित काल के लिए हैंग हो जाता है

  3. SEC_CASE_SENSTIVE_LOGON 12c . में

  4. Oracle तालिका 2 में सम्मिलित करें, फिर तालिका 1 से हटाएं, विफल होने पर अपवाद

  5. Oracle, Rownum से कनेक्ट करें