Der Aufruf einer Prozedur nimmt eine Sequenz als Parameter und gibt auch eine Sequenz zurück.
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>
Sie können also über den Index :
auf den zurückgegebenen Cursor zugreifenret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]
oder
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]
Dann können Sie das Ergebnis mit einer for-Schleife
ausdruckenfor line in ret_cursor:
print line
oder mit print ret_cursor.fetchall()
, oder mit dem pprint
Werkzeug, falls erforderlich.
In der Dokumentation
Sie verlinkt haben, wird der Rückgabewert direkt nach l_query
entpackt und l_emp
:
l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])
Übrigens müssen Sie den zurückgegebenen Cursor möglicherweise am Ende mit derselben Methode wie den Hauptcursor schließen:ret_cursor.close()
. Andernfalls kann es eine Ausnahme über die Verbindung kann nicht geschlossen werden auslösen .