print return_val
があります 間違った場所に; ref カーソル変数を出力するために、終了する前に 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
の場所が表示されていません から来ているので、今のところそれを数字にハードコーディングしました.ちなみに、フィードバックをオンではなくオフに設定したいと思うでしょう。