Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Buscar dados do Oracle SP Out Param SYS_REFCURSOR no Unix Korn Shell Script


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.