A chamada para um procedimento recebe uma sequência como parâmetro e também retorna uma sequência.
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>
Então você pode acessar o cursor retornado por index :
ret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]
ou
l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]
Então você pode imprimir o resultado com um loop for
for line in ret_cursor:
print line
ou com
print ret_cursor.fetchall()
, ou com o pprint
ferramenta, se necessário. Na documentação você vinculou, o valor de retorno é descompactado diretamente para
l_query
e l_emp
:l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])
A propósito, você pode precisar fechar o cursor retornado no final, com o mesmo método do cursor principal:
ret_cursor.close()
. Caso contrário, pode lançar uma exceção sobre a conexão não pode ser fechada .