Gracias a JoshuaBoshi por su respuesta, que resolvió el problema. Después de llamar al procedimiento, tuve que cerrar el cursor y abrirlo nuevamente antes de usarlo para ejecutar otra declaración:
cursor.close()
cursor = connection.cursor()
El cursor se puede cerrar inmediatamente después de fetchall()
. El conjunto de resultados aún permanece y se puede recorrer en bucle.