Hai il tuo print return_val
nel posto sbagliato; dovrebbe essere all'interno del comando SQL*PLUS, prima dell'uscita, per stampare la variabile del cursore di riferimento.
Devi anche anteporre return_val
con i due punti nella tua chiamata di procedura, per indicare che sta usando la variabile bind che hai appena dichiarato, sebbene tu abbia omesso anche il tipo di variabile dalla sua dichiarazione. Questo sembra fare quello che vuoi:
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
}
Non hai mostrato dove WEEKNUM
proviene da, quindi per ora l'ho codificato in un numero.
Penso che probabilmente vorrai disattivare il feedback, non attivarlo, per inciso.