आपको केवल DECLARE
change को बदलने की जरूरत है (अज्ञात ब्लॉक की शुरुआत का संकेत) CREATE PROCEDURE
. के लिए , वेरिएबल के साथ जिसे आप वर्तमान में एक औपचारिक तर्क के रूप में एक प्रतिस्थापन चर के माध्यम से सेट कर रहे हैं; तो इसके बजाय:
DECLARE
veno emp.empno%type:=&veno;
vsal emp.sal%type;
vexp number;
BEGIN
...
END;
/
इसे बनाएं:
CREATE OR REPLACE PROCEDURE my_proc (veno IN emp.empno%type)
AS
vsal emp.sal%type;
vexp number;
BEGIN
...
END;
/
फिर आप उसे किसी अनाम ब्लॉक से, या SQL*Plus या SQL डेवलपर में execute
के साथ कॉल कर सकते हैं आशुलिपि:
set serveroutput on
execute my_proc(&veno);
यह उदाहरण अभी भी एक प्रतिस्थापन चर का उपयोग कर रहा है, इसलिए आपको उपयोग के लिए मूल्य के लिए पदोन्नत किया जाएगा, लेकिन आप सीधे एक नंबर भी पास कर सकते हैं।
प्रक्रियाएं बनाने के बारे में और पढ़ें और पैरामीटर के प्रकार ।
आप दोहराव और आवश्यकता को कम करने के लिए कोड को काफी सरल बना सकते हैं; केस एक्सप्रेशन और रिटर्निंग क्लॉज देखें। लेकिन यह सीधे तौर पर प्रासंगिक नहीं है।