Oracle
 sql >> Database >  >> RDS >> Oracle

Recupera i dati da Oracle SP Out Param SYS_REFCURSOR in Unix Korn Shell Script

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.