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 .