Извикването на процедура приема последователност като параметър и също връща последователност.
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>
Така че можете да получите достъп до върнатия курсор чрез индекс :
ret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]
или
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]
След това можете да отпечатате резултата с for цикъл
for line in ret_cursor:
print line
или с print ret_cursor.fetchall()
, или с pprint
инструмент, ако е необходимо.
В документацията
сте свързали, върнатата стойност се разопакова директно в l_query
и l_emp
:
l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])
Между другото, може да се наложи да затворите върнатия курсор в края със същия метод като основния курсор:ret_cursor.close()
. В противен случай може да хвърли изключение относно връзката не може да бъде затворена .