2011-01-18 11 views
5

मेरे पास एक प्रक्रिया है जो वैध है और इसमें एक सम्मिलित है .. चयन कथन। अब एक ऐसा मामला है जहां इस प्रक्रिया का निष्पादन इस कथन से "ORA-00904:: अवैध पहचानकर्ता" त्रुटि उत्पन्न करता है। यह सैद्धांतिक रूप से भी कैसे संभव है? कोई ट्रिगर या गतिशील एसक्यूएल नहीं हैं।मैं वैध पैकेज से "ORA-00904:: अवैध पहचानकर्ता" कैसे प्राप्त कर सकता हूं?

इसके अलावा, एसक्लेरम में ओआरए -00 9 0 9 टेक्स्ट किसी भी विशिष्ट पहचानकर्ता के लिए पॉइंटर के बिना है जो ओरेकल अमान्य मानता है।

Oracle संस्करण 9.2.0.8

EDIT2:

बाहर कर देता है एक समारोह है कि चयन के भीतर से बुलाया गया था के साथ एक समस्या थी (स्थिरांक से बदल दिया और सब कुछ काम किया)। शायद यही वजह है कि ओआरए -00 9 04 ने पहचानकर्ता नहीं दिया था। फिर भी, सवाल बनी हुई है - यह गतिशील एसक्यूएल वाला प्रीकंपिल्ड कोड कैसे हो सकता है यह त्रुटि देता है?

+5

क्या आप कुछ उदाहरण कोड पोस्ट कर सकते हैं कृपया! – Tim

+2

क्या कोई विचार है? आपने जो कहा है उससे मुझे लगता है कि आपको सभी त्रुटियों ('जब अन्य') के लिए अपवाद हैंडलर मिला है जो 'SQLERRM' प्रिंट करता है; यदि आपके पास यह नहीं है कि अपवाद उठाया जाएगा और यह कहां से आ रहा है, इस बारे में अधिक जानकारी देगा। –

+5

आपके द्वारा पहचाने गए फ़ंक्शन, और बदले में जो कुछ भी कहा जाता है, उसके पास कोई गतिशील एसक्यूएल नहीं था? क्या श्रृंखला में कुछ भी 'authid current_user' खंड है, जो संकलन और रन टाइम (विशेषाधिकार और संकल्प) के बीच व्यवहार को प्रभावित कर सकता है? क्या आप किसी भी भूमिका निभाने वाले निजी पर निर्भर हैं, जो पैकेज में लागू नहीं होते हैं? –

उत्तर

2

मुझे लगता है कि इस तरह की त्रुटि तब हो सकती है जब आप पैकेज को एक्सेस करते हैं जहां पैकेज मान्य है लेकिन शरीर को संकलन की आवश्यकता है और अपवाद फेंकता है।

एक और कारण ऑथिड current_user के साथ कोड हो सकता है जो वर्तमान उपयोगकर्ता के विशेषाधिकारों के साथ चलता है (मालिक के विशेषाधिकारों के साथ सामान्य नहीं)। ऐसी प्रक्रिया विफल हो सकती है जब किसी के साथ बुलाया जाता है और किसी अन्य उपयोगकर्ता के साथ निष्पादित होने पर सफल होता है।

0

चूंकि आपको पहले से ही समाधान मिला है, यह आपकी समस्या नहीं थी। लेकिन मैं एक नोट जोड़ना चाहता था, कि पैकेज में फ़ंक्शन के शरीर में आपको यह त्रुटि मिलती है, लेकिन स्पेक शीट में कोई फ़ंक्शन हस्ताक्षर नहीं है।

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