के अंदर कैसे परिवर्तित करें मेरे पास क्लोब वैरिएबल है, इसे varchar2 चर को असाइन करने की आवश्यकता है। CLOB वर के अंदर डेटा कम से कम 4000 (i..e varchar2 के MAXSIZE) oracle10 +सीएलओबी से VARCHAR2 को ऑरैकल पीएल/एसक्यूएल
मैं
report_len := length(report_clob);
report := TO_CHAR(dbms_lob.substr(report_clob, report_len, 1));
report_clob := null;
कोशिश की, लेकिन यह लंबे समय मूल्य जबकि डिबगिंग जो मैं देख रहा हूँ में रिपोर्ट बदल जाता है। इसके अलावा जब मैं अपने सी # कोड से इस एसक्यूएल (proc) को कॉल करता हूं। यह बफर को बहुत छोटा कहता है, क्योंकि मैं वर्कर के अनुसार पैरामीटर भेजता हूं, लेकिन उपर्युक्त रूपांतरण इसे लंबे मूल्य में बदल सकता है।
मैं भी सीधा काम
report_clob := report
एक ही परिणाम हो रही है की कोशिश की। PL/SQL डेवलपर में मैं परीक्षण स्क्रिप्ट का उपयोग डिबग:
संपादित
ठीक है, नीचे कृपया देखें सवालों के जवाब देने। रिपोर्ट वैरिएबल varchar2 (4000) है। जब मैं दूसरी पंक्ति के बाद कदम। रिपोर्ट एक लंबा मूल्य साबित होती है और यह केवल कहती है (लंबी मान)। सामग्री भी देख नहीं सकते हैं।
रिपोर्ट और report_clob प्रक्रिया से बाहर परिवर्तनीय हैं। इस प्रक्रिया को सी # कोड से बुलाया जाता है।
जब मैं इस प्रक्रिया को कॉल करता हूं तो सी # में अपवाद स्ट्रिंग बफर बहुत छोटा होता है। मैंने प्रक्रिया से 4000 अधिकतम वर्ण मान प्राप्त करने के लिए पर्याप्त सी # में रिपोर्ट वैरिएबल के आकार के रूप में 5000 दिया है। तो मुझे लगता है कि समस्या वहां झूठ नहीं बोलती है।
और जब मैं रिपोर्ट असाइन करता हूं: = 'कुछ स्ट्रिंग ....' तो सी # कॉल ठीक काम करता है।
तो मेरी जांच में कहा गया है कि रिपोर्ट: = ट्रांसफॉर्म (report_clob) रिपोर्ट को लंबे मूल्य या कुछ ऐसी चीज (अजीब) बन रही है जो 5000 वर्कर आउट पैरामीटर में बड़े मूल्य को संभालने के लिए सी # कोड समस्याग्रस्त बनाता है।
कोई और विवरण मुझे प्रदान करने में खुशी होगी।
'रिपोर्ट' घोषित कैसे किया जाता है? 'लंबा' या 'वचर 2'? आप डिबगिंग कैसे कर रहे हैं, और आप मान को 'C#' - फ़ंक्शन रिटर्न या आउटपुट पैरामीटर पर कैसे लौट रहे हैं, और यह किस प्रकार का है? –
'रिपोर्ट: = सीएएसटी (report_clob एएस VARCHAR2 (3 9 99)); ' – Annjawn
' DBMS_LOB.substr' एक VARCHAR2 देता है, आपको 'TO_CHAR' फ़ंक्शन की आवश्यकता नहीं है। इसके अलावा आप एक लंबा मूल्य क्या कहते हैं? आप डीबग कैसे करते हैं? आपको वास्तव में क्या त्रुटि त्रुटि मिल रही है (यानी ओरेकल या सी #)? रिपोर्ट चर घोषित कैसे किया जाता है? –