आपके पास अपना print return_val
है गलत जगह पर; यह रेफरी कर्सर वैरिएबल को प्रिंट करने के लिए बाहर निकलने से पहले SQL*PLUS कमांड के अंदर होना चाहिए।
आपको return_val
. से पहले भी लगाना होगा आपकी प्रक्रिया कॉल में एक कोलन के साथ, यह इंगित करने के लिए कि यह आपके द्वारा घोषित बाइंड वैरिएबल का उपयोग कर रहा है - हालांकि आपने वैरिएबल प्रकार को इसकी घोषणा से भी छोड़ दिया है। ऐसा लगता है कि आप जो चाहते हैं वह कर रहे हैं:
function runproc
{
#read ref cursor from proc
cur=`sqlplus -s $connectiondetails <<EOF
SET PAGESIZE 0 FEEDBACK ON VERIFY OFF HEADING OFF ECHO OFF
var return_val refcursor
exec myproc_retcur(14, :return_val);
print return_val
EXIT
EOF`
return cur
}
आपने यह नहीं दिखाया है कि WEEKNUM
. कहां है से आ रहा है इसलिए मैंने इसे अभी के लिए एक नंबर पर हार्ड-कोड किया है।
मुझे लगता है कि आप शायद प्रतिक्रिया को बंद करना चाहते हैं, न कि संयोग से।