In generale non ci sono problemi con l'apertura e la chiusura di più cursori in sequenza. Puoi pensare al cursore come fondamentalmente a un puntatore a un set di risultati di query (ed è un insieme di puntatori a dati memorizzati nella cache). L'apertura di un cursore alloca un puntatore e la chiusura di uno libera la memoria.
In generale, penso che la pulizia logica sia la cosa migliore qui, quindi avere un cursore per query è la strada da percorrere.