Anropet till en procedur tar en sekvens som parameter och returnerar också en sekvens.
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>
Så du kan komma åt den returnerade markören genom att indexera :
ret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]
eller
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]
Sedan kan du skriva ut resultatet med en for loop
for line in ret_cursor:
print line
eller med print ret_cursor.fetchall()
, eller med pprint
verktyg om det behövs.
I dokumentationen
du har länkat, packas returvärdet upp direkt till l_query
och l_emp
:
l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])
Förresten, du kan behöva stänga den returnerade markören i slutet, med samma metod som huvudmarkören:ret_cursor.close()
. Annars kan det skapa ett undantag om att anslutningen inte kan stängas .