sql >> Databasteknik >  >> RDS >> Oracle

Hämta data från Oracle SP Out Param SYS_REFCURSOR i Unix Korn Shell Script

Du har din print return_val på fel plats; det ska finnas inuti SQL*PLUS-kommandot, före utgången, för att skriva ut ref-markörvariabeln.

Du måste också prefixet return_val med ett kolon i ditt proceduranrop, för att indikera att den använder bindningsvariabeln du just deklarerade - även om du också utelämnade variabeltypen från dess deklaration. Det här verkar göra vad du vill:

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
}

Du har inte visat var WEEKNUM kommer från så jag har hårdkodat det till ett nummer för nu.

Jag tror att du förmodligen vill aktivera feedback, inte på, för övrigt.




  1. Försök att ladda Oracle-klientbibliotek kastade BadImageFormatException

  2. Servering av läcker mat (och data) – En datamodell för restauranger

  3. Utländsk nyckel som refererar till flera rader i en annan tabell

  4. FEL:SQLSTATE[HY000] [2002] Ingen anslutning kunde göras eftersom måldatorn aktivt vägrade det