INVALID SECTION NUMBER number
Explication :
L’un des éléments suivants :
- L’utilisateur a tenté d’exécuter une section non valide.
- Cette version de DB2 ne prend pas en charge l’instruction SQL.
- Le numéro de section dans la liste des paramètres d’appel est l’un des suivants :
- Négatif
- Un doublon invalide
- Supérieur au numéro de section maximal du DBRM ou du package
Action du système :
L’instruction ne peut pas être traitée.
Réponse du programmeur :
Pour le cas 1 : si vous exécutez un package lié avec SQLERROR(CONTINUE), déterminez si l’instruction en question était liée en tant que section valide. Vous pouvez utiliser les instructions suivantes pour interroger le catalogue Db2 :
SELECT SQLERROR
FROM SYSIBM.SYSPACKAGE
WHERE COLLID = collection-id AND
NAME = package-id AND
VERSION = version-name;
Si cette requête renvoie ‘C’, le package était lié avec SQLERROR(CONTINUE).
SELECT STMTNO, TEXT
FROM SYSIBM.SYSPACKSTMT
WHERE COLLID = collection-id AND
NAME = package-id AND
VERSION = version-name AND
SECTNO = number AND
BINDERROR = 'Y';
Si cette requête renvoie des lignes, la section n’est pas valide. Reportez-vous aux messages d’erreur émis pendant la liaison pour en déterminer la cause. Corrigez les erreurs et liez à nouveau le package à l’aide de l’option REPLACE.
Pour le cas 2 : Si le système Db2 est revenu à une version précédente, déterminez s’il existe des instructions SQL avec un numéro de section de zéro qui ne sont pas prises en charge par cette version. Vous pouvez utiliser les instructions suivantes pour interroger le catalogue Db2.
Lors de l’exécution à partir d’un DBRM, utilisez :
SELECT *
FROM SYSIBM.SYSSTMT
WHERE SECTNO = 0
ORDER BY NAME, PLNAME, STMTNO, SEQNO;
Lors de l’exécution à partir d’un package, utilisez :
SELECT *
FROM SYSIBM.SYSPACKSTMT
WHERE SECTNO = 0
ORDER BY COLLID, NAME, VERSION, STMTNO, SEQNO;
Pour le cas 3 : Examinez l’application pour déterminer si la liste des paramètres d’appel a été modifiée d’une manière ou d’une autre. En général, vous ne devez pas essayer de modifier la sortie du précompilateur.
ETATSQL :
58003