La chiamata a una procedura accetta una sequenza come parametro e restituisce anche una sequenza.
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>
Quindi puoi accedere al cursore restituito per indice:
ret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]
o
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]
Quindi puoi stampare il risultato con un ciclo for
for line in ret_cursor:
print line
o con print ret_cursor.fetchall()
o con il pprint
strumento se necessario.
Nella documentazione
hai collegato, il valore restituito viene decompresso direttamente in l_query
e l_emp
:
l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])
A proposito, potrebbe essere necessario chiudere il cursore restituito alla fine, con lo stesso metodo del cursore principale:ret_cursor.close()
. Altrimenti può generare un'eccezione sulla non è possibile chiudere la connessione .