2011-01-17 12 views
7

मेरे पास एक संग्रहीत प्रक्रिया है जो बहुत लंबी स्ट्रिंग निष्पादित करने के लिए EXECUTE IMMEDIATE कमांड का उपयोग करती है। मैं एक बहुत लंबी स्ट्रिंग का समर्थन कैसे करूं और डेटा को एक रिफर्सर ​​में वापस कर सकता हूं?ओरेकल एक कर्सर में सुधार करें

+4

"बहुत लंबा" कितना समय है? 32k से अधिक? –

+0

क्या डेटाबेस संस्करण? – DCookie

उत्तर

12

यह मानते हुए कि अपने एसक्यूएल 32K से अधिक बड़ा नहीं है (जैसा कि @Tony एंड्रयूज की ओर संकेत किया), तो आप कुछ इस तरह का उपयोग करने में सक्षम होना चाहिए है:

declare 
    SQL_Text varchar2(32760) := 'select * from dual'; --your query goes here 
    cur sys_refcursor; 
begin 
    open cur for SQL_Text; 
end; 

जब रेफरी कर्सर के साथ काम करने, open-for सीधे इस्तेमाल किया जा सकता , execute immediate के बजाय।

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