De aanroep van een procedure neemt een reeks als parameter en retourneert ook een reeks.
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>
U kunt dus toegang krijgen tot de geretourneerde cursor via index:
ret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]
of
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]
Vervolgens kunt u het resultaat afdrukken met een for-lus
for line in ret_cursor:
print line
of met print ret_cursor.fetchall()
, of met de pprint
hulpmiddel indien nodig.
In de documentatie
je hebt gelinkt, wordt de retourwaarde direct uitgepakt naar l_query
en l_emp
:
l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])
Trouwens, het kan zijn dat je de geretourneerde cursor aan het einde moet sluiten, met dezelfde methode als de hoofdcursor:ret_cursor.close()
. Anders kan het een uitzondering veroorzaken over de verbinding kan niet worden gesloten .