2010-01-22 11 views
7

मेरे पास ऑरैकल में संग्रहीत प्रक्रिया है और इसे SQLPlus से परीक्षण करना चाहते हैं।एसक्यूएल प्लस से संग्रहित प्रक्रिया का निष्पादन कैसे करें?

अगर मैं

execute my_stored_proc (-1,2,0.01) 

मैं यह त्रुटि

PLS-00306: wrong number or types of arguments in call to my_stored_proc 

proc के लिए शुरुआत इस

create or replace PROCEDURE my_stored_proc 
(a IN NUMBER, 
    b IN NUMBER, 
    c IN NUMBER, 
    z out NUMBER 
) AS .... 

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

var z NUMBER; 

लेकिन जब मैं proc

execute my_stored_proc (-1,2,0.01,z) 
PLS-00201: identifier 'Z' must be declared 

चलाने का प्रयास भी जब मैं एसक्यूएल-डेवलपर में था यह मेरे उपयोग दे दी है और यह उलटे क्रम में आदानों दिखाने के इस त्रुटि मिलती है, वह यह है कि:

execute my_stored_proc(z number,c number,b number,a number); 

आप उन्हें उलटे क्रम में प्रदान करते हैं या कि सिर्फ एसक्यूएल-डेवलपर के साथ कुछ है

मैंने प्रक्रिया नहीं लिखी और मैं आमतौर पर उनसे निपटता नहीं हूं इसलिए मुझे कुछ स्पष्ट याद आ रही है।

धन्यवाद

उत्तर

14

आपके पास दो विकल्प, एक PL/SQL ब्लॉक या SQL * है प्लस चर बाँध:

var z number 

execute my_stored_proc (-1,2,0.01,:z) 

print z 
-1

आप एक बाँध चर के रूप में जेड डाल करने के लिए भूल गया था।

निम्न आदेश निष्पादित चलाता है एक PL/SQL बयान एक संग्रहीत प्रक्रिया का संदर्भ देता है:

SQL> EXECUTE - 
> :Z := EMP_SALE.HIRE('JACK','MANAGER','JONES',2990,'SALES') 

नोट संग्रहीत प्रक्रिया द्वारा दिए गए मान में वापसी की जा रही है कि: जेड

+3

-1 एक समारोह कर सकते हैं एक अभिव्यक्ति में प्रयोग किया जाना चाहिए, एक प्रक्रिया नहीं कर सकते हैं। –

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