Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Pobierz dane z Oracle SP Out Param SYS_REFCURSOR w skrypcie powłoki Unix Korn

Masz swój print return_val w złym miejscu; powinien znajdować się wewnątrz polecenia SQL*PLUS, przed wyjściem, aby wydrukować zmienną kursora ref.

Musisz także poprzedzić return_val z dwukropkiem w wywołaniu procedury, aby wskazać, że używa właśnie zadeklarowanej zmiennej bind — chociaż pominięto również typ zmiennej w jej deklaracji. To wydaje się robić to, czego chcesz:

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
}

Nie pokazałeś, gdzie WEEKNUM pochodzi, więc na razie zakodowałem to na numer.

Myślę, że prawdopodobnie chcesz wyłączyć, nawiasem mówiąc, nie włączać.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dlaczego tablica asocjacyjna indeksowana przez VARCHAR2 nie przechowuje więcej niż 9 elementów

  2. Formatowanie ciągu UUID bez REGEXP_REPLACE i PL/SQL

  3. Polecenie Oracle CREATE TABLE w PL/SQL z 10 przykładami

  4. SQL Wypełnianie odrębnymi danymi i sekwencją

  5. Najlepszy sposób na otrzymanie wiadomości e-mail po równoczesnym niepowodzeniu (sql - wyzwalacz - aplikacja)