FETCH IS NOT ALLOWED, BECAUSE CURSOR cursor-name HAS AN UNKNOWN POSITION
Explication :
La position du curseur pour cursor-name est inconnue. L’extraction de plusieurs lignes précédente pour le curseur cursor-name a entraîné une erreur au milieu du traitement de plusieurs lignes extraites de Db2. Une ou plusieurs des lignes demandées n’ont pas pu être renvoyées au programme suite à l’erreur, laissant la position du curseur inconnue.
L’erreur a peut-être été détectée chez le demandeur. Par exemple, une ligne avec une valeur nulle a été renvoyée à une application, mais aucune variable d’indicateur n’a été fournie. Une instruction FETCH ultérieure entraînerait SQLCODE -353. Si un indicateur avait été fourni, un SQLCODE positif aurait été renvoyé et toutes les lignes extraites de Db2 auraient pu être renvoyées au programme d’application.
Action du système :
L’instruction ne peut pas être traitée. La position du curseur n’est pas modifiée.
Réponse du programmeur :
Fermez et rouvrez le curseur pour réinitialiser la position du curseur. Pour les curseurs déroulants, vous pouvez modifier l’instruction FETCH pour spécifier l’une des autres orientations d’extraction. Par exemple, vous pouvez modifier l’instruction FETCH en spécifiant l’une des orientations d’extraction suivantes :
- BEFORE ou AFTER
- orientations de récupération en ligne : FIRST, LAST ou ABSOLUTE pour établir un curseur de ligne valide et récupérer une ligne de données
- orientations d’extraction positionnées sur l’ensemble de lignes : FIRST ROWSET, LAST ROWSET ou ROWSET STARTING AT ABSOLUTE pour établir une position de curseur d’ensemble de lignes valide et extraire plusieurs lignes de données
Vous pouvez également modifier l’application pour corriger l’erreur qui s’est initialement produite. Par exemple, si l’erreur a été émise parce qu’un indicateur n’a pas été fourni, modifiez l’application pour fournir un indicateur.
SQLSTATE :
24513