Volání procedury bere sekvenci jako parametr a také vrací sekvenci.
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>
Takže můžete přistupovat k vrácenému kurzoru pomocí indexu :
ret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]
nebo
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]
Poté můžete výsledek vytisknout pomocí cyklu for
for line in ret_cursor:
print line
nebo pomocí print ret_cursor.fetchall()
, nebo pomocí pprint
nástroj v případě potřeby.
V dokumentaci
jste propojili, návratová hodnota se přímo rozbalí do l_query
a l_emp
:
l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])
Mimochodem, možná budete muset zavřít vrácený kurzor na konci stejnou metodou jako hlavní kurzor:ret_cursor.close()
. Jinak může vyvolat výjimku o připojení nelze uzavřít .