Oracle
 sql >> база данни >  >> RDS >> Oracle

Извличане на данни от Oracle SP Out Param SYS_REFCURSOR в Unix Korn Shell Script

Имате своя print return_val на грешното място; трябва да е вътре в командата SQL*PLUS, преди изхода, за да отпечата променливата на ref курсора.

Трябва също да поставите префикс return_val с двоеточие във вашето извикване на процедура, за да посочите, че използва свързващата променлива, която току-що сте декларирали - въпреки че сте пропуснали и типа на променливата от нейната декларация. Това изглежда прави това, което искате:

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
}

Не сте показали къде WEEKNUM идва от, така че засега съм го кодирал твърдо до число.

Мисля, че вероятно искате да изключите обратната връзка, а не да я включите случайно.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XMLTABLE в oracle - XQuery динамичен тип несъответствие:очаквана единична последователност - получена последователност от множество елементи

  2. Как да изпълним Oracle sql скрипт чрез java код

  3. Стойности на няколко реда в един ред

  4. Екраниране на контролни знаци в Oracle XDB

  5. java.sql.SQLException:- ORA-01000:максималният отворен курсор е превишен