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

Zwróć zmienną kursora procedury składowanej w cx_oracle

Wywołanie procedury przyjmuje sekwencję jako parametr i również zwraca sekwencję.

l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>

Możesz więc uzyskać dostęp do zwróconego kursora poprzez indeks :

ret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]

lub

l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]

Następnie możesz wydrukować wynik za pomocą pętli for

for line in ret_cursor:
    print line

lub za pomocą print ret_cursor.fetchall() lub za pomocą pprint narzędzie w razie potrzeby.

W dokumentacji połączyłeś, zwracana wartość jest bezpośrednio rozpakowana do l_query i l_emp :

l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])

Przy okazji, może być konieczne zamknięcie zwróconego kursora na końcu, tą samą metodą co kursor główny:ret_cursor.close() . W przeciwnym razie może zgłosić wyjątek mówiący, że połączenie nie może zostać zamknięte .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zmień rozmiar typu danych w sql

  2. Zapytanie SQL DIFFDATE zwraca nieprawidłowy identyfikator

  3. cx_Oracle — Nie udało się załadować biblioteki DLL:%1 nie jest prawidłową aplikacją Win32. pyton

  4. Usuwanie nakładających się godzin z liczenia dni wolnych od pracy

  5. Procedura Oracle