Masz swój print return_val
w złym miejscu; powinien znajdować się wewnątrz polecenia SQL*PLUS, przed wyjściem, aby wydrukować zmienną kursora ref.
Musisz także poprzedzić return_val
z dwukropkiem w wywołaniu procedury, aby wskazać, że używa właśnie zadeklarowanej zmiennej bind — chociaż pominięto również typ zmiennej w jej deklaracji. To wydaje się robić to, czego chcesz:
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
}
Nie pokazałeś, gdzie WEEKNUM
pochodzi, więc na razie zakodowałem to na numer.
Myślę, że prawdopodobnie chcesz wyłączyć, nawiasem mówiąc, nie włączać.