Você tem seu
print return_val
no lugar errado; ele deve estar dentro do comando SQL*PLUS, antes da saída, para imprimir a variável ref cursor. Você também precisa prefixar
return_val
com dois pontos em sua chamada de procedimento, para indicar que está usando a variável de ligação que você acabou de declarar - embora você também tenha omitido o tipo de variável de sua declaração. Isso parece fazer o que você quer: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
}
Você não mostrou onde
WEEKNUM
está vindo, então eu codifiquei isso para um número por enquanto. Acho que você provavelmente deseja desativar o feedback, e não ativar, incidentalmente.