Anda memiliki print return_val
di tempat yang salah; itu harus berada di dalam perintah SQL*PLUS, sebelum keluar, untuk mencetak variabel kursor ref.
Anda juga perlu awalan return_val
dengan titik dua dalam panggilan prosedur Anda, untuk menunjukkan itu menggunakan variabel bind yang baru saja Anda nyatakan - meskipun Anda juga menghilangkan tipe variabel dari deklarasinya. Ini tampaknya melakukan apa yang Anda inginkan:
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
}
Anda belum menunjukkan di mana WEEKNUM
berasal dari jadi saya telah mengkodekan itu menjadi nomor untuk saat ini.
Saya rasa Anda mungkin ingin menonaktifkan masukan, bukan mengaktifkannya, secara kebetulan.