मुझे यहां .NET 4.0 C#, IBatisNet और CSLA ढांचे के साथ एंटरप्राइज़ प्रोजेक्ट मिला है।"ORA-01084 का पीछा करना: ओसीआई कॉल में अमान्य तर्क"
पैकेज में सम्मिलित प्रो को कॉल करते समय परियोजना नौकरियों में से एक ORA-01084: invalid argument in OCI call
के साथ विफल रहा है। लौटाई गई त्रुटि संदेश सबसे अच्छा है, संग्रहित प्रो में 83 इनपुट पैरामीटर हैं जो नाम से बंधे नहीं हैं (आईबीटिस के लिए धन्यवाद)।
उत्सुकता क्या है: मुझे रिकॉर्ड का एक सेट मिला है Order
और OrderItems
कहें। Order
में 28 ऑर्डर आइटम हैं। नौकरी को Order
बनाकर ऑर्डर को नवीनीकृत करना है और सभी OrderItems
रिकॉर्ड कॉपी करना है। नए ऑर्डर आइटम पुरानी ऑर्डर आइटम्स को ParentOrderItemId
फ़ील्ड द्वारा संदर्भित कर रहे हैं, जो नवीनीकृत होने के कारण Orders
के लिए चयन मानदंड भी है।
जब मैं इसे पहली बार चलाता हूं तो प्रक्रिया OrderItemId: 12345
पर ORA-01084
त्रुटि के साथ उड़ाती है। लेकिन जब मैं अगली बार इसे फिर से चालू करता हूं, तो यह सफलतापूर्वक OrderItemId: 12345
को संसाधित करता है। और फिर OrderItemId: 12444
पर उड़ाता है। मैं फिर से पुन: प्रयास करता हूं और यह OrderItemId: 12444
सही ढंग से और इतने पर और आगे संसाधित करता है।
मुझे पास के डीबी पैरामीटर के लॉग मिल गए हैं, वे दोनों मामलों में समान हैं।
मुझे ओसीआई क्लाइंट ट्रेस मिला है, लेकिन यह उपयोगी नहीं है।
मैंने डेटाबेस परत पर लॉगिंग सेट अप किया है, और अब तक यह मुझे कुछ भी नहीं दे रहा है।
कोई भी विचार उन प्रकार की त्रुटियों का पता लगाने के लिए कैसे?
अस्पष्ट विचार: यदि ओसीआई कॉल में पारित पैरामीटर पहले असफल और दूसरे सफल निष्पादन पर समान हैं (जैसा कि आपने कहा था कि डीबी पैरामीटर के लॉग में देखा जा सकता है), कुछ प्रकार की प्रारंभिक त्रुटि हो सकती है, संभवतः शून्य मान। –
जब आप "डेटाबेस परत पर लॉगिंग" कहते हैं, तो क्या इसका मतलब है कि संग्रहित प्रक्रिया इनपुट पैरामीटर लॉग करती है, ताकि आप सत्यापित कर सकें कि कॉलम मानों का कोई मिलान नहीं हुआ है? –
हां, मैंने हर जगह पूरी तरह से लॉगिंग जोड़ा है ताकि मैं देख सकूं कि जो कुछ भी पास हो गया है और विस्तार से बाहर हो गया है। – b0rg