sql >> Databáze >  >> RDS >> Oracle

Načtěte data z Oracle SP Out Param SYS_REFCURSOR v Unix Korn Shell Script

Máte svůj print return_val na špatném místě; měl by být uvnitř příkazu SQL*PLUS před ukončením, aby se vytiskla proměnná ref kurzoru.

Musíte také zadat předponu return_val s dvojtečkou ve vašem volání procedury, abyste označili, že používá proměnnou vazby, kterou jste právě deklarovali - ačkoli jste z její deklarace také vynechali typ proměnné. Zdá se, že toto dělá, co chcete:

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
}

Neukázali jste místo WEEKNUM pochází z, takže jsem to prozatím napevno zakódoval na číslo.

Myslím, že pravděpodobně chcete odezvu vypnout, nikoli zapnout, mimochodem.




  1. Můžeme vytvořit funkční indexy v MySql pro funkce VELKÁ a LOWERCASE

  2. Problém mysql_insert_id při vkládání souběžných dat

  3. Profilování dotazů 101 – Ano, skutečně může zlepšit výkon vašeho SQL serveru

  4. Automatické zvyšování pole, dokud není splněna určitá podmínka mysql