Vous avez votre print return_val
au mauvais endroit; il devrait être à l'intérieur de la commande SQL*PLUS, avant la sortie, pour imprimer la variable de curseur de référence.
Vous devez également préfixer return_val
avec deux-points dans votre appel de procédure, pour indiquer qu'il utilise la variable de liaison que vous venez de déclarer - bien que vous ayez également omis le type de variable de sa déclaration. Cela semble faire ce que vous voulez :
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
}
Vous n'avez pas indiqué où WEEKNUM
vient donc je l'ai codé en dur dans un nombre pour l'instant.
Je pense que vous souhaitez probablement désactiver les commentaires, pas les activer, accessoirement.