2011-07-21 5 views
9

में त्रुटि मैं पैकेज में एक प्रक्रिया बना रहा हूं। मैंने पैकेज के विनिर्देश को अद्यतन किया है और फिर जब मैं पैकेज के बॉडी को अपडेट कर रहा हूं तो यह मुझे निम्न त्रुटि दिखाता है।पीएलएस -00323 ओरेकल

[त्रुटि] PLS-00,323 (314: 13): PLS-00,323: Subprogram या कर्सर 'INSERT_CUSTOMER_ADDRESS' एक पैकेज विनिर्देश में घोषित किया जाता है और पैकेज शरीर

एनबी में परिभाषित किया जाना चाहिए: INSERT_CUSTOMER_ADDRESS मेरा प्रक्रिया नाम है।

+5

बहुत स्पष्ट हो सकता है, लेकिन अगर प्रक्रिया का नाम बिल्कुल वही है, साथ ही सभी पैरामीटर प्राप्त होने पर डबल चेक करें। –

+0

समझ गया, पैरामीटर नाम से बस एक पत्र याद किया गया। – Amit

+0

उस से निपटने के लगभग आधे घंटे में एक ही त्रुटि। बहुत बहुत धन्यवाद। – BlaShadow

उत्तर

2

यदि आप पैकेज विनिर्देश में कोई प्रक्रिया बनाते हैं तो इसे पैकेज बॉडी में \ strong बनाया जाना चाहिए। एक इंटरफेस और पैकेज बॉडी के कार्यान्वयन के रूप में अपने पैकेज विनिर्देश पर विचार करें।

+0

हां, मैंने पैकेज बॉडी में प्रक्रिया कोड जोड़ा है। यह त्रुटि का कारण नहीं है। किसी भी तरह जब मैं प्रक्रिया निकाय को अद्यतन करता हूं तो इसमें नई प्रक्रिया शामिल नहीं होती है, हालांकि यह पैकेज बॉडी के अंदर है। – Amit

+0

यह एक अजीब त्रुटि की तरह लगता है। सब कुछ ठीक है, फिर भी यह नहीं बना रहा है। – Amit

10

जैसा कि मुझे यह कई बार अनुभव होता है, यह कार्य/प्रक्रिया (मेरा मतलब परिवर्तनीय नाम और उनके संबंधित प्रकार), की आपकी परिभाषा से संबंधित है, यदि शरीर में एक चर है और नहीं, तो यह होगा इस त्रुटि का कारण बनता है। यह सामान्य त्रुटि डॉन चिंता है!

1

विशिष्टता: फ़ंक्शन ITEM_ACTIVE (SKU_NUM NUMBER में) वापसी बूलेन;

बॉडी: फंक्शन ITEM_ACTIVE (P_SKU_NUM संख्या में) रिटर्न बूलियन;

सटीक मिलान करने के लिए या तो विनिर्देश या निकाय को बदलें।

HTH!

2

हमेशा पीकेजी स्पेक और पीकेजी बॉडी पर घोषणा समान होनी चाहिए।

प्रक्रिया/समारोह pkg कल्पना में घोषित (प्रक्रिया/समारोह, पैरामीटर प्रकार का नाम भी शामिल है) जिसका मतलब है बिल्कुल वैसा ही होना चाहिए।

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

+0

ऐसा लगता है कि समस्याएं पहले से ही टिप्पणियों में हल हो चुकी थीं, और आप इस जवाब में टिप्पणियों को फिर से हटा रहे हैं। –

+0

_Note_ उपयोगी है! – user3454439

1

किसी का वर्ष त्रुटियों हमेशा मुझसे खबर है क्योंकि, मैं अपने 3 सेंट जोड़ देंगे:

किसी ने उनकी कल्पना को नष्ट कर दिया, लेकिन अभी भी शरीर के लिए किया था (नहीं, मैं कैसे पता नहीं है) और वे "didn वह सब कुछ वापस टाइप करना नहीं चाहता "।

तो मैं उन्हें दिखाया है कि कैसे शरीर से कल्पना उत्पन्न करने के लिए: वर्कशीट में

  1. कॉपी शरीर।
  2. पैकेज के नाम से शरीर के ऊपर एक खाली शीर्षलेख डालें।
  3. संकलन।
  4. [चाहे आपको कोई त्रुटि हो या नहीं,] पैकेज पेड़ में पैकेज बॉडी पर राइट क्लिक करें, और "विशिष्टता और बॉडी सिंक्रनाइज़ करें" का चयन करें।
  5. स्पेक में कौन से ऑब्जेक्ट्स का पर्दाफाश करना है और ठीक क्लिक करें चुनें।
  6. "जादू होता है"

केवल जादू नहीं हुआ - और सब कुछ लाल हो गया ... PLS-00,323 त्रुटियों के साथ।

एसक्यूएल डेवलपर कोड से प्रक्रिया और फ़ंक्शन हेडर खींचकर पैकेज स्पेक को पॉप्युलेट करता है, इसलिए आपको चीजों को झुकाव के बारे में चिंता करने की ज़रूरत नहीं है। यह पैकेज/स्पेक में जोड़ने के लिए ऑब्जेक्ट्स की एक सूची प्रस्तुत करता है, और आप चुनते हैं कि कौन से जोड़े जाएंगे।

हमने सही प्रक्रियाओं और कार्यों का चयन किया, लेकिन यह त्रुटियों से संकलित हुआ। फिर। और फिर।

यह पता चला है कि त्रुटियों को फेंकने वाले कार्यों को डिटेरमिनिस्टिक के साथ पैकेज बॉडी में परिभाषित किया गया था - जब एसक्यूएल देव के संपादक ने सिंक्रनाइज़ेशन किया था, तो यह शब्द छोड़ दिया गया। यह बहुत महत्वपूर्ण है।

वैसे भी, अर्ध-कॉलन से पहले विशिष्ट कार्यों में डिटेरमिनिस्टिक की समीक्षा की गई, समीक्षा की गई (पुनः संकलित), और फिर यह जादू फिर से था।

आप उम्मीद करेंगे कि एसक्यूएल डेवलपर आधा-नौकरी की बजाय पूर्ण नौकरी करेगी।