Oracle
 sql >> Base de données >  >> RDS >> Oracle

Récupérer les données d'Oracle SP Out Param SYS_REFCURSOR dans le script Unix Korn Shell

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.