Merci à JoshuaBoshi pour sa réponse, qui a résolu le problème. Après avoir appelé la procédure, j'ai dû fermer le curseur et l'ouvrir à nouveau avant de l'utiliser pour exécuter une autre instruction :
cursor.close()
cursor = connection.cursor()
Le curseur peut être fermé immédiatement après fetchall()
. Le jeu de résultats reste et peut être parcouru en boucle.